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!(nm)!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=Cnmm+1nm

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;  
		}
    }
};

你可能感兴趣的:(leetcode,算法)