1. 程式人生 > 實用技巧 >leetcode 33:pascals-triangle

leetcode 33:pascals-triangle

給出一個值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 }