LC108楊輝三角

楊輝三角


給定一個非負整數 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;

    }
};


總結

楊輝三角是一個比較經典的題目,首先要先處理第一行(或者第一行和第二行),然後後面的行數均可以以循環方式輸出。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章