
思路: 思路很简单,就把每一行硬算出来,当前元素要靠前一行两个元素相加才能得到。看了答案我才知道这个思路其实是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(暂时不太确定)
本文深入探讨了使用动态规划(DP)算法解决杨辉三角问题的方法,通过逐行计算,利用前一行的两个元素相加得到当前元素,实现杨辉三角的生成。代码示例清晰展示了算法的实现过程。
1024

被折叠的 条评论
为什么被折叠?



