第三道还是帕斯卡三角,这个是要求正常输出,题目如下:
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<vector<int>> generate(int numRows) { vector<vector<int>> Pascal; vector<int> tmp; if (numRows == 0) { return Pascal; } tmp.push_back(1); Pascal.push_back(tmp); for (int i = 1; i < numRows; i++) { tmp.clear(); tmp.push_back(1); for (int j = 1; j < i; j++) { tmp.push_back(Pascal[i - 1][j - 1] + Pascal[i - 1][j]); } tmp.push_back(1); Pascal.push_back(tmp); } return Pascal; }
这个跟上一题有一个区别是在这里认为帕斯卡三角的第0层应该返回[],而上一题中输入numRows==0时,返回的是[1],这个在最开始加一个判断就可以了没必要纠结。
[leetcode] 3. Pascal's Triangle
时间: 2024-10-12 15:56:20