LeetCode 119. 杨辉三角 II
题意:求杨辉三角(帕斯卡三角)的第n行(n从0开始)
杨辉三角的每一行是二项式排列组合的展开式
第n行为:
C
n
0
,
C
n
1
,
C
n
2
,
…
,
C
n
n
C_{n}^{0}, C_{n}^{1}, C_{n}^{2}, \dots, C_{n}^{n}
Cn0,Cn1,Cn2,…,Cnn
又已知排列组合的阶乘表示公式
C
n
m
=
n
!
m
!
(
n
−
m
)
!
C_{n}^{m} = \frac{n!}{m!(n-m)!}
Cnm=m!(n−m)!n!
因此若已知
C
n
m
C_{n}^{m}
Cnm 求
C
n
m
+
1
C_{n}^{m+1}
Cnm+1 有:
C
n
m
+
1
=
C
n
m
⋅
n
−
m
m
+
1
C_{n}^{m+1} = C_{n}^{m} \cdot \frac{n-m}{m+1}
Cnm+1=Cnm⋅m+1n−m
class Solution {
public:
vector<int> getRow(int rowIndex) {
vector<int> getRow(int rowIndex) {
vector<int> a(rowIndex+1);
a[0] = 1;
for (int i = 1; i <= rowIndex; ++i) {
a[i] = (int)((size_t) a[i-1] * (rowIndex - 1 + 1) / i);
}
return a;
}
}
};