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