Pascal's Triangle II
Given an index k, return the kth row of the Pascal's triangle.
For example, given k = 3,
Return [1,3,3,1]
.
Note:
Could you optimize your algorithm to use only O(k) extra space?
算法思想:dp[row][col]保存row行col列元素值,则有dp[row][col]=dp[row-1][col-1]+dp[row-1][col];
可以用一维数组替代二维数组,不过j要从后向前遍历
class Solution {
public:
vector<int> getRow(int rowIndex) {
vector<int> dp(rowIndex+1);
dp[0]=1;
for(int i=1;i<=rowIndex;i++){
for(int j=i;j>=0;j--){
if(!j)continue;
if(j==i){dp[j]=dp[j-1];continue;}
dp[j]+=dp[j-1];
}
}
return dp;
}
};