描述
给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。
分析
建立一个List集合,从右向左遍历,把前一位的值和当前位的值相加赋值给当前位,这样实现了杨辉三角。
class Solution {
public List<Integer> getRow(int rowIndex) {
List<Integer> res = new ArrayList<>();
res.add(1);
for(int i = 1; i <= rowIndex; i++){
res.add(0);
for(int j = i; j > 0; j--){
res.set(j,res.get(j-1)+res.get(j));
}
}
return res;
}
}
这个解法过程和杨辉三角1的解法一样,除了返回值不一样
class Solution {
public List<Integer> getRow(int rowIndex) {
List<List<Integer>> list = new ArrayList<>();
List<Integer> li = new ArrayList<>();
li.add(1);
list.add(li);
for(int i = 1; i <= rowIndex; i++){
li = new ArrayList<>();
for(int j = 0; j <= i; j++){
if(j == 0 || j == i){
li.add(1);
continue;
}
li.add(list.get(i-1).get(j-1)+list.get(i-1).get(j));
}
list.add(li);
}
return list.get(rowIndex);
}
}