题目:杨辉三角

[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    }