水题,题目有个进阶,要求空间复杂度是O(k),实际上就是时间换空间的做法。把问题的解法给成从下而上,递归即可。
懒得写递归了,直接套用上题
class Solution {
public List<Integer> getRow(int rowIndex) {
return generate(rowIndex+1).get(rowIndex);
}
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> ans = new ArrayList<>();
for (int i = 0; i < numRows; i++) {
List<Integer> list = new ArrayList<>();
ans.add(list);
for (int j = 0; j < i + 1; j++) {
if (i > 1 && j > 0 && j != i) {
list.add(ans.get(i - 1).get(j - 1) + ans.get(i - 1).get(j));
} else {
list.add(1);
}
}
}
return ans;
}
}