给定一个非负整数 *numRows,*生成杨辉三角的前 numRows 行。
在杨辉三角中,每个数是它左上方和右上方的数的和。
样例
样例 1:
输入: 5
输出:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
样例 2:
输入: 3
输出:
[
[1],
[1,1],
[1,2,1]
]
class Solution {
public:
/**
* @param numRows: num of rows
* @return: generate Pascal's triangle
*/
vector<vector<int>> generate(int numRows) {
// write your code here
vector<vector<int>> ret;
if(numRows == 0)
{
return ret;
}
vector<int> tmp;
int array[numRows][numRows];
memset(array, 0, numRows*numRows*4);
int i = 0;
int j = 0;
for(i=0; i<numRows; i++)
{
array[i][0] = 1;
array[i][i] = 1;
}
for(i=2; i<numRows; i++)
{
for(j=1; j<i; j++)
{
array[i][j] = array[i-1][j] + array[i-1][j-1];
}
}
for(i=0; i<numRows; i++)
{
vector<int> vecHeight;
for(j=0; j<i+1; j++)
{
vecHeight.push_back(array[i][j]);
}
ret.push_back(vecHeight);
}
return ret;
}
};