Given a non-negative index kwhere k ≤ 33, return the kthindex row of the Pascal's triangle.
Note that the row index starts from 0.
与118题不同之处在于,本题只返回第k行。要求空间限制在O(k)。
由于有空间限制,因此不能把每行都算出来。用到以下性质:
除每行最左侧与最右侧的数字以外,每个数字等于它的左上方与右上方两个数字之和(也就是说,第n行第k个数字等于第n-1行的第k-1个数字与第k个数字的和)。可用此性质写出整个杨辉三角形。
从右往左写。vector初始默认为0。
class Solution {
public:
vector<int> getRow(int rowIndex) {
vector<int> ret(rowIndex+1);
ret[0] = 1;
for(int i=0; i<rowIndex; i++){
for(int j=i+1; j>0; j--){
ret[j]=ret[j] + ret[j-1];
}
}
return ret;
}
};