题目描述
跟之前不同的是这个只需要返回第n层即可,所以这次如果不考虑其复杂度,可以直接将昨天的代码给改造一下
如下
public static List<Integer> getRow(int rowIndex) {
List<List<Integer>> target = new ArrayList<>();
for(int i = 1; i <= rowIndex + 1; i++){
List<Integer> mid = new ArrayList<>();
for(int j = 1; j <= i; j++){
if(j == 1 || j == i){
mid.add(1);
}else {
mid.add(target.get(i-2).get(j-2)+target.get(i-2).get(j-1));
}
}
target.add(mid);
}
return target.get(rowIndex);
}
考虑如何进行优化
查看如下的代码,没怎么看懂…
待看…
class Solution {
public List<Integer> getRow(int rowIndex) {
Integer[] rows = new Integer[rowIndex + 1];
rows[0] = 1;
if(rowIndex > 0){
rows[1] = 1;
}
for(int i = 2;i <= rowIndex; i++){
for(int j = i - 1;j > 0;j--){
rows[j] = rows[j] + rows[j - 1];
}
rows[i] = 1;
}
return Arrays.asList(rows);
}
}