Given a non-negative index k where k ≤ 33, return the kth index row of the Pascal's triangle.
Note that the row index starts from 0.
In Pascal's triangle, each number is the sum of the two numbers directly above it.
Example:
Input: 3 Output: [1,3,3,1]
Follow up:
Could you optimize your algorithm to use only O(k) extra space?
O(k) extra space
思路参考这个:
我们创建一个元素数量与最后结果相同的数组,假设参数为4:
[1,0,0,0,0]
从最后一个元素开始,本元素等于本元素和前一个相加,
[1,1,0,0,0]
[1,2,1,0,0]
[1,3,3,1,0]
[1,4,6,4,1]
class Solution {
public:
vector<int> getRow(int rowIndex) {
vector<int>ans(rowIndex+1,0);
ans[0]=1;
int i,j;
for(i=1;i<=rowIndex;i++){
for(j=i;j>=1;j--){
ans[j]=ans[j]+ans[j-1];
}
}
return ans;
}
};