題目描述
【leetcode】118. 楊輝三角( Pascal’s Triangle )
給定一個非負整數 numRows,生成楊輝三角的前 numRows 行。
在楊輝三角中,每個數是它左上方和右上方的數的和。
第一次解答
思路:
vector<vector>裏第一個vector是{1},
往後每添加一行,下一行下標i的元素都是其上一行下標i-1和i的元素和
若i-1或i越界,則對應元素值用0替代
注意:
numRows爲0和1的情況
test case:
5
1
0
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> Pascal_triangle;
for(int i=0; i<numRows; ++i){
// 添加一行元素
Pascal_triangle.push_back(vector<int>(i+1, 1));
for(int j=1; j<i; ++j){
// 給每個元素賦值
int left = Pascal_triangle[i-1][j-1];
int right = Pascal_triangle[i-1][j];
Pascal_triangle[i][j] = left + right;
}
}
return Pascal_triangle;
}
};
結果: