思路: 思路很简单,就把每一行硬算出来,当前元素要靠前一行两个元素相加才能得到。看了答案我才知道这个思路其实是dp,因为前后两行会有联系。下面直接上代码:
class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> res = new ArrayList<>();
if(numRows == 0){return res;}
List<Integer> list0 = new ArrayList<>();
List<Integer> list1 = new ArrayList<>();
list0.add(1);
list1.add(1);
list1.add(1);
res.add(list0);
if(numRows == 1){return res;}
res.add(list1);
for(int i = 2; i < numRows; i++){
List<Integer> list = new ArrayList<>();
list.add(1);
List<Integer> sub = res.get(i - 1);
for(int j = 0; j < sub.size() - 1; j++){
list.add(sub.get(j)+sub.get(j+1));
}
list.add(1);
res.add(list);
}
return res;
}
}
总结:
1.循环前后互相影响,利用,可以称之为dp(暂时不太确定)