这道题需要注意的是每次循环在List头部插入1,其效果就是将上一次循环计算出来的List整体向后平移1位。然后使用set方法,将List的第 j 位设置成 List.get(j) + List.get(j + 1)的值,也就是在Pascal三角中自己上方的两个元素。因为之前的List已经整体平移过1个单位,所以是j & j + 1。代码如下:
class Solution {
public List<Integer> getRow(int rowIndex) {
List<Integer> res = new ArrayList<>();
for(int i = 0; i <= rowIndex; i++){
res.add(0, 1);
for(int j = 1; j < res.size() - 1; j++){
res.set(j, res.get(j) + res.get(j + 1));
}
}
return res;
}
}