给出一个值numRows,生成杨辉三角的前numRows行
例如,给出 numRows = 5,
返回
[↵ [1],↵ [1,1],↵ [1,2,1],↵ [1,3,3,1],↵ [1,4,6,4,1]↵]
题目分析:
这道题其实和上道题leetcode 32:pascals-triangle-ii的解法基本一致,只是在输出的处理上有所不同。
代码如下:
1 vector<vector<int> > generate(int numRows) { 2 vector<vector<int>> ret; 3 if(numRows <= 0) 4 return ret; 5 vector<int> tmp(numRows,0); 6 tmp[0] = 1; 7 8 std::vector<int> ll; 9 ll.push_back(1); 10 ret.push_back(ll); 11 for (int i = 1; i < numRows; i++) 12 { 13 std::vector<int> tt; 14 for (int j = i; j >= 1; j--) 15 { 16 tmp[j] += tmp[j - 1]; 17 } 18 19 for (int k = 0; k <= i; k++) 20 { 21 tt.push_back(tmp[k]); 22 } 23 ret.push_back(tt); 24 } 25 return ret; 26 }