給定一個非負整數 numRows,生成楊輝三角的前 numRows 行。
思路
首先,輸入0直接返回{};
輸入1,直接返回{{1}};
從2開始執行循環。(題目的 i 和 j 均指的是下標)
代碼
class Solution {
public:
vector<vector<int>> generate(int numRows) {
if (numRows == 0) return{};
if (numRows == 1) return{ {1} };
vector<vector<int>> ans;
ans.push_back({ {1} });
ans.push_back({ {1,1} });
vector<int> part;
for (int i = 2; i <= numRows - 1; i++)
{
part.clear();
part.push_back(1);
for (int j = 1; j <= i - 1; j++)
{
part.push_back(ans[i - 1][j - 1] + ans[i - 1][j]);
}
part.push_back(1);
ans.push_back(part);
}
return ans;
}
};
總結
楊輝三角是一個比較經典的題目,首先要先處理第一行(或者第一行和第二行),然後後面的行數均可以以循環方式輸出。