题目:杨辉三角
[1]
[1,1]
[1,2,1]
[1,3,3,1]
[1,4,6,4,1]
把左端对齐,以符合二维数组的格式
根据杨辉三角的定义,可以知道,当前元素的值,等于左上方元素加正上方的元素,也就是
v[i][j] = v[i-1][j-1] + v[i-1][j]
又因为每一层的大小都比上一层多一个,所以每次循环都需要对数组向后扩容一位,并将所有元素初始化为1** **
1vector<vector<int>> generate(int numRows)
2 {
3 std::vector<std::vector<int>> vec(numRows);
4 for(int i = 0; i < numRows; i++)
5 {
6 vec[i].resize(i+1, 1);
7 for(int j = 1; j < i; j++)
8 {
9 vec[i][j] = vec[i-1][j-1] + vec[i-1][j];
10 }
11 }
12 return vec;
13 }