Pascal's Triangle
Given numRows, generate the first numRows of Pascal's triangle.
For example, given numRows = 5,
Return
[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ]
算法思想:
与II一样,dp[row][col]保存row行col列元素值,则有dp[row][col]=dp[row-1][col-1]+dp[row-1][col];
可以用一维数组替代二维数组,不过j要从后向前遍历,构造数组
class Solution {
public:
vector<vector<int> > generate(int numRows) {
vector<int> dp;
vector<vector<int>> result;
if(!numRows)return result;
dp.push_back(1);
result.push_back(dp);
for(int i=1;i<numRows;i++){
for(int j=i;j>=0;j--){
if(!j)continue;
if(j==i){
dp.push_back(dp[j-1]);
continue;
}
dp[j]+=dp[j-1];
}
result.push_back(dp);
}
return result;
}
};