1. 程式人生 > 其它 >2021-09-07 刷題 119楊輝三角2

2021-09-07 刷題 119楊輝三角2

題目連結:https://leetcode-cn.com/problems/pascals-triangle-ii/

題目說明:

給定一個非負索引rowIndex,返回「楊輝三角」的第rowIndex行。

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

示例 1:
輸入: rowIndex = 3
輸出: [1,3,3,1]
示例 2:

輸入: rowIndex = 0
輸出: [1]
示例 3:

輸入: rowIndex = 1
輸出: [1,1]
答題思路:

1、觀察楊輝三角每一行,每一列有什麼關係,並使用編號進行編寫

2、重點關注每一行與每一行的關係,並學會用數學公式表達出來(第i行的的第j個與第i-1行的j與j+1 相等)

3、擴充套件學習 滾動陣列

若將楊輝三角的內容進行格式調整,則可規律性的進行程式碼編寫

程式碼:

class Solution {
public:
    vector<int> getRow(int rowIndex) {
        vector<vector <int>> A(rowIndex + 1);//定義一個數組
        for(int i = 0 ; i <=rowIndex; ++i){//迴圈第一層次,進行判斷
            A[i].resize(i+1);
            A[i][0] = A [i][i] =1
; for(int j = 1;j<i; ++j){ A[i][j] = A[i-1][j] + A[i-1][j-1]; } } return A[rowIndex]; } };

TIPS:c++中序列式容器的一個共性函式, vv.resize(int n,element)表示調整容器vv的大小為n,擴容後的每個元素的值為element,預設為0 resize()會改變容器的容量和當前元素個數 定義 vector<type> vv; 標頭檔案#include<vector>