Day 7 第二题
我的思路和上一篇的杨辉三角一致,只不过将List获取层数的代码List.get(0).add()
修改成数组
class Solution {
public List<Integer> getRow(int rowIndex) {
List<Integer> getRow = new ArrayList<Integer>();
int[][] dp = new int[rowIndex+1][rowIndex+1];
getRow.add(1);
dp[0][0] = 1;
for(int i = 1;i<=rowIndex;i++){
dp[i][0] = 1;
for(int j=1;j<=i-1;j++){
dp[i][j] = dp[i-1][j-1]+dp[i-1][j];
if(i==rowIndex){
getRow.add(dp[i][j]);
}
}
dp[i][i] = 1;
if(i==rowIndex){
getRow.add(1);
}
}
return getRow;
}
}
lincs设计 节约空间复杂度 的代码
class Solution {
public List<Integer> getRow(int N) {
List<Integer> res = new ArrayList<>(N + 1);
for (int i = 0; i <= N; i++) {
res.add(1);
for (int j = i - 1; j > 0; j--) {
res.set(j, res.get(j) + res.get(j - 1));
}
}
return res;
}
}