Problem: 118. 杨辉三角
思路
讲述看到这一题的思路
解题方法
杨辉三角是个等边三角形,建立一个头朝下,往右边倾斜45度的坐标轴, 第一步:结果集用二维数组表示,这里有明显的递推特征,直接利用dp的步骤: ·初始化 ·子问题划分,发现可以递推,dp起来 ·从左往右的递推,求出dp的解,循环扩大第二步,覆盖整个问题的解,也就是走到n行 ·注意下边界情况 第二步:画个图
复杂度
时间复杂度:
添加时间复杂度, 示例:
空间复杂度:
添加空间复杂度, 示例:
Code
class Solution {
public List<List<Integer>> generate(int numRows) {
int n = numRows;
int[][] dp = new int[n][n];
for(int i =0;i<n;i++){
dp[i][0] = 1;
}
for(int i=1;i<n;i++){
for(int j=1;j<=i;j++){
dp[i][j] = dp[i-1][j-1]+dp[i-1][j];
}
}
List<List<Integer>> res = new ArrayList();
for(int i =0;i<n;i++){
List<Integer> rows = new ArrayList();
for(int j =0; j<n; j++){
if(dp[i][j] != 0){
rows.add(dp[i][j]);
}
// else
// {
// rows.add(0);
// }
}
res.add(rows);
}
return res;
}
}