給定 numRows,生成楊輝三角的前 numRows 行。
範例: numRows = 5 → [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
利用性質 tri[i][j] = tri[i-1][j-1] + tri[i-1][j](邊界為 1)。逐行構建,每行首尾為 1,中間由上一行相鄰兩數相加得出。
class Solution {
public:
vector> generate(int numRows) {
vector> res;
if (numRows <= 0) return res;
res.push_back({1});
for (int i = 1; i < numRows; ++i) {
vector row(i + 1, 1);
for (int j = 1; j < i; ++j) {
row[j] = res[i-1][j-1] + res[i-1][j];
}
res.push_back(row);
}
return res;
}
};