一. 题目描写叙述
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]]
二. 题目分析
关于帕斯卡三角形的定义,可參考:
将该三角形的左边对齐。就行发现,tri[i][j] = tri[i-1][j-1] + tri[i-1][j]
。因此这里的代码并没有什么技巧。
三. 演示样例代码
class Solution {public: vector> generate(int numRows) { vector > result; if (numRows <= 0) return result; else { vector temp(1, 1); result.push_back(temp); if (numRows == 1) return result; temp.push_back(1); result.push_back(temp); if (numRows == 2) return result; for (int i = 2; i < numRows; ++i) { vector temp(i + 1, 1); for (int j = 1; j < i; ++j) temp[j] = result[i - 1][j - 1] + result[i - 1][j]; result.push_back(temp); } } return result; }};