因为某些不可言说的原因,现在开始要写十道leetcode上面的题目并且写博客解释,在一天之内!祝福我
-
题目:杨辉三角
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
-
思路:
每一行的首个和结尾一个数字都是1,从第三行开始,中间的每个数字都是上一行的左右两个数字之和。
-
代码:
class Solution {
2 public:
3 vector<vector<int> > generate(int numRows) {
4 vector<vector<int> > res;
5 if (numRows <= 0) return res;
6 res.assign(numRows, vector<int>(1));
7 for (int i = 0; i < numRows; ++i) {
8 res[i][0] = 1;
9 if (i == 0) continue;
10 for (int j = 1; j < i; ++j) {
11 res[i].push_back(res[i-1][j] + res[i-1][j-1]);
12 }
13 res[i].push_back(1);
14 }
15 return res;
16 }
17 };