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] ]
题目大意:
vector创建二维数组的应用,简单的递推公式v[i][j] = v[i-1][j] + v[i-1][j-1] 即,每个数等于它上方两个数字之和。
题目代码:
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> ans(numRows);
if(numRows == 0)
return ans;
for(int i = 0; i < numRows; i++)
ans[i].resize(i+1);
ans[0][0] = 1;
if(numRows == 1)
return ans;
ans[1][0] = ans[1][1] = 1;
for(int i = 2; i < numRows; i++){
ans[i][0] = ans[i][i] = 1;
}
for(int i = 2; i < numRows; i++){
for(int j = 1; j < i; j++){
ans[i][j] = ans[i-1][j]+ans[i-1][j-1];
}
}
return ans;
}
};