- 时间:2020-08-24
- 题目链接:https://leetcode-cn.com/problems/pascals-triangle-ii
- tag:
动态规划
数学
给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。
在杨辉三角中,每个数是它左上方和右上方的数的和。
示例:
输入: 3
输出: [1,3,3,1]
很简单了
class Solution {
public List<Integer> getRow(int rowIndex) {
Integer[] dp = new Integer[rowIndex + 1];
Arrays.fill(dp, 1);
for(int i = 2; i < dp.length; i++) {
for (int j = i - 1; j > 0; j--) {
dp[j] = dp[j - 1] + dp[j];
}
}
List<Integer> res = Arrays.asList(dp);
return res;
}
}
杨辉三角第n行第i列的数值为:C(n-1, i-1),其中C为组合数,则第(i+1)项是第i项的倍数=(n-i)/(i+1); 杨辉三角的其他性质可以参考这里
class Solution {
public List<Integer> getRow(int rowIndex) {
List<Integer> res = new ArrayList<>(rowIndex + 1);
long cur = 1;
for (int i = 0; i <= rowIndex; i++) {
res.add((int) cur);
cur = cur * (rowIndex-i)/(i+1);
}
return res;
}
}