【leetcode】118. 楊輝三角( Pascal's Triangle )


題目描述

【leetcode】118. 楊輝三角( Pascal’s Triangle )
給定一個非負整數 numRows,生成楊輝三角的前 numRows 行。
在這裏插入圖片描述
在楊輝三角中,每個數是它左上方和右上方的數的和。
在這裏插入圖片描述

第一次解答

思路:
vector<vector>裏第一個vector是{1},
往後每添加一行,下一行下標i的元素都是其上一行下標i-1和i的元素和
若i-1或i越界,則對應元素值用0替代

注意:
numRows爲0和1的情況

test case:
5
1
0

class Solution {
public:
    vector<vector<int>> generate(int numRows) {
        vector<vector<int>> Pascal_triangle;
        for(int i=0; i<numRows; ++i){
            // 添加一行元素
            Pascal_triangle.push_back(vector<int>(i+1, 1));
            for(int j=1; j<i; ++j){
                // 給每個元素賦值
                int left = Pascal_triangle[i-1][j-1];
                int right = Pascal_triangle[i-1][j];
                Pascal_triangle[i][j] = left + right;
            }
        }

        return Pascal_triangle;

    }
};

結果:
在這裏插入圖片描述

相關/參考鏈接

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