题目:https://leetcode-cn.com/problems/pascals-triangle-ii/
答案:
根据杨辉三角规律
1 (1+1)^{0}
1 1 (1+1)^{1}
1 2 1 (1+1)^{2}
1 3 3 1 (1+1)
每个位置是 二项式展开项系数, 每一行总和 是 2 次幂
对称原理第n行 第m个元素 和 第n行 第n-m 个元素相对:C(n-1,m-1)=C(n-1,n-m)
所以 第n行 第m个元素等于
排列组合的公式:
f(1) = 1;
f(m) = (n-1)!/((m-1)! *(n-1-(m-1))!)
f(m+1) = (n-1)!/(m!*(n-1-m)!)
f(m+1)/f(m) = (n-m)/m
f(m+1) = f(m)*(n-m)/m
所以得出下面答案
public List<Integer> getRow(int rowIndex) {
List<Integer> result = new ArrayList<>(rowIndex + 1);
int numRows = rowIndex + 1;
for (int i = 0; i < numRows; i++){
if (i == 0){
result.add(1);
}else {
long value = (long) result.get(i - 1) * (long) (numRows - i) / i;
result.add((int) value);
}
}
return result;
}