class Solution { public: vector<vector<int> > generate(int numRows) { vector<vector<int> > res; if (numRows < 1) return res; vector<int> row(1, 1); res.push_back(row); for (int i=2; i<=numRows; i++) { // vector<int> &last = res.back(); res.push_back(vector<int>(i, 1)); vector<int> &crow = res.back(); int half = i / 2; int j = 1; for (; j<half; j++) { crow[i-j-1] = crow[j] = res[i-2][j] + res[i-2][j-1]; } if (i & 0x1) { crow[j] = res[i-2][j] * 2; } } return res; } };
上一列用代码中注释掉的引用代指的话就一直runtime error
第二轮:代码更简洁一点
// 00:38 class Solution { public: vector<vector<int>> generate(int numRows) { vector<vector<int> > res; for (int i=0; i<numRows; i++) { int cm = i / 2; res.push_back(vector<int>(i + 1, 1)); int p = 1; for (; p<i; p++) { res[i][p] = res[i-1][p] + res[i-1][p-1]; } } return res; } };