1. 程式人生 > >leetcode 楊輝三角 II

leetcode 楊輝三角 II

題目描述:

給定一個非負索引 k,其中 k ≤ 33,返回楊輝三角的第 行。

在楊輝三角中,每個數是它左上方和右上方的數的和。

示例:

輸入: 3
輸出: [1,3,3,1]

解題思路:

觀察發現。二維陣列的值可分為兩種情況:邊界值為1,中間值 由左上加上右上。題目k的取值範圍[0,33], 所以先求出行數為k+1的二維矩陣,即[0, 1, 2, ..., k] ,再返回第k行即可。

 

C++程式碼:

class Solution {
public:
    vector<int> getRow(int rowIndex) {
        vector<vector<int>> YangAngle(rowIndex+1);
        
        for (int i = 0; i < rowIndex+1; i++){
            YangAngle[i].resize(i+1); // 定義每行的大小
            YangAngle[i][0] = 1; // 前面邊界
            YangAngle[i][i] = 1; // 後面
        }
        
        for (int i = 2; i < rowIndex+1; i++)
            for (int j = 1; j < YangAngle[i].size()-1; j++){
                YangAngle[i][j] = YangAngle[i-1][j-1] + YangAngle[i-1][j];
            }
        
        vector<int> temp = YangAngle[rowIndex];
        return temp;
    }
};

執行用時: 0 ms, 在Pascal's Triangle II的C++提交中擊敗了100.00% 的使用者