Description
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?
分析
题目的意思是:求杨辉三角的第k行的数。
- 我开始直接推导数学公式了,后面发现根本没发编程,原来只是模拟一下杨辉三角的构建过程就行了,其中dp数组设置的很巧妙,这里注意,每一行的个数,等于index+1,画个图就知道了,index自顶向下,从0开始。
代码
class Solution {
public:
vector<int> getRow(int rowIndex) {
vector<int> v(rowIndex+1,0);
v[0]=1;
for(int i=0;i<rowIndex;i++){
for(int j=rowIndex;j>0;j--){
v[j]=v[j]+v[j-1];
}
}
return v;
}
};