c*******r 发帖数: 51 | 1 给了20分钟在线写代码打印下面的三角,写的乱七八糟,唉,还得多写简单代码
1
2 2
3 4 3
4 7 7 4 |
w********s 发帖数: 214 | |
w********s 发帖数: 214 | |
w********s 发帖数: 214 | 4 patpat了,楼主多做题肯定能过的,现在市场是很好的 |
s********u 发帖数: 1109 | 5 杨辉三角形吧。是不是存一个prevlist,然后curlist一边赋值一边打印?有点像bfs |
w*****e 发帖数: 931 | 6 一个list就能搞定吧,从右往左update。
【在 s********u 的大作中提到】 : 杨辉三角形吧。是不是存一个prevlist,然后curlist一边赋值一边打印?有点像bfs
|
s********u 发帖数: 1109 | 7 嗯 有道理。
但是打印就麻烦一点,要再从左到右遍历list一遍。
最近发现一个规律,就是size变大的话,就先resize再倒序赋值;
如果size变小,就先顺序赋值再resize。
【在 w*****e 的大作中提到】 : 一个list就能搞定吧,从右往左update。
|
p*****2 发帖数: 21240 | 8 (defn f [l]
(defn- dfs [xs pre next layer]
(cond
(<= layer 0) nil
(empty? xs)
(let [n (cons (inc pre) next)]
(println n)
(dfs n 1 () (dec layer)))
:default
(let [curr (first xs)]
(dfs (rest xs) curr (cons (+ pre curr) next) layer))))
(dfs () 0 () l)) |
c*******r 发帖数: 51 | 9 要求java实现,开头问了好几个LinkedList / ArrayList的问题,莫非要用这些现成的
类去实现?我是写了一段for loop加if-else的,可能人家看着不够简洁 |
s********u 发帖数: 1109 | 10 用数组也可以啊,只是稍微麻烦点,要考虑resize的问题。
【在 c*******r 的大作中提到】 : 要求java实现,开头问了好几个LinkedList / ArrayList的问题,莫非要用这些现成的 : 类去实现?我是写了一段for loop加if-else的,可能人家看着不够简洁
|
D**********d 发帖数: 849 | 11 void PrintTriangle(int n){
vector list(n,1);
for(int i = 0; i < n; ++i){
for(int j = i; j > 0; --j) list[j] += list[j-1];
list[0] = i+1;
for(int j = 0; j <= i; ++j) cout << list[j];
cout << endl;
}
} |