leetcode 楊輝三角 II
阿新 • • 發佈:2018-12-13
題目描述:
給定一個非負索引 k,其中 k ≤ 33,返回楊輝三角的第 k 行。
在楊輝三角中,每個數是它左上方和右上方的數的和。
示例:
輸入: 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% 的使用者