题目:给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行
输入: 3
输出: [1,3,3,1]
列优化的动态规划,注意列优化后的列遍历方向
public List<Integer> getRow(int k) {
List<Integer> ans = new ArrayList<>();
int[] dp = new int[k + 1];
for (int i = 0; i <= k; ++i) {
for (int j = i; j >= 0; --j) { // 注意j的遍历顺序
if (j == 0 || j == i) dp[j] = 1;
else dp[j] += dp[j - 1];
}
}
for (int num : dp) ans.add(num);
return ans;
}