国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

動態(tài)規(guī)劃-楊輝三角

這篇具有很好參考價值的文章主要介紹了動態(tài)規(guī)劃-楊輝三角。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

該算法題分別是:
118. 楊輝三角。
119. 楊輝三角 II

1 [楊輝三角]

1.1 給定一個非負整數(shù) numRows,生成「楊輝三角」的前 numRows 行。

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

動態(tài)規(guī)劃-楊輝三角,動態(tài)規(guī)劃專題,動態(tài)規(guī)劃,算法,動態(tài)規(guī)劃-楊輝三角,楊輝三角,楊輝三角 II

1.2 示例

1.2.1 示例 1:

輸入: numRows = 5
輸出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

1.2.2 示例 2:

輸入: numRows = 1
輸出: [[1]]

1.2.3 提示:

1 <= numRows <= 30

來源:力扣(LeetCode)
鏈接:https://leetcode.cn/problems/pascals-triangle
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

1.3 算法解決方法

1.3.1 算法解題思路

1.3.1.1 確定狀態(tài)
  • 設(shè)dp[i][j]表示第1 + 1行,第j + 1列的數(shù)
    dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1];
1.3.1.2 轉(zhuǎn)移方程
  • 設(shè)dp[i][j]表示第1 + 1行,第j + 1列的數(shù)
    dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1];
1.3.1.3 初始條件以及邊界情況
  • 設(shè)dp[i][j]表示第1 + 1行,第j + 1列的數(shù)
    dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1];

初始條件:
dp[0][0] = 1

邊界情況:
dp[i][0] = dp[i][i] = 1;

1.3.1.4 計算順序

dp[0][0]
dp[1][0],dp[1][1]

dp[N - 1][0],dp[N - 1][N - 1]

1.3.2 算法實現(xiàn)

class Solution {
public:
    vector<vector<int>> generate(int numRows) {
        vector<vector<int>> dp(numRows);
        for(int i = 0; i < numRows; i++) {
            dp[i].resize(i + 1);
            dp[i][0] = dp[i][i] = 1;
        }

        for (int i = 2; i < numRows; i++) {
            for (int j = 1; j < i; j++)
                dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1];
        }

        return dp;
    }
};

2 [楊輝三角 II]

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

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

動態(tài)規(guī)劃-楊輝三角,動態(tài)規(guī)劃專題,動態(tài)規(guī)劃,算法,動態(tài)規(guī)劃-楊輝三角,楊輝三角,楊輝三角 II

2.2 示例

2.2.1 示例 1:

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

2.2.2 示例 2:

輸入: rowIndex = 0
輸出: [1]

2.2.3 示例 3:

輸入: rowIndex = 1
輸出: [1,1]

2.2.4 提示:

0 <= rowIndex <= 33

來源:力扣(LeetCode)
鏈接:https://leetcode.cn/problems/pascals-triangle-ii
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

2.3 算法解決方法

楊輝三角 II完全可以借助于上面的楊輝三角的解決方法去處理,不同的是要處理index和楊輝三角的關(guān)系,最后返回特定行的楊輝三角數(shù)據(jù)就可以。

2.3.1 算法解題思路

2.3.1.1 確定狀態(tài)
  • 設(shè)dp[i][j]表示第1 + 1行,第j + 1列的數(shù)
    dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1];
2.3.1.2 轉(zhuǎn)移方程
  • 設(shè)dp[i][j]表示第1 + 1行,第j + 1列的數(shù)
    dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1];
2.3.1.3 初始條件以及邊界情況
  • 設(shè)dp[i][j]表示第1 + 1行,第j + 1列的數(shù)
    dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1];

初始條件:
dp[0][0] = 1

邊界情況:
dp[i][0] = dp[i][i] = 1;

2.3.1.4 計算順序

dp[0][0]
dp[1][0],dp[1][1]

dp[N - 1][0],dp[N - 1][N - 1]

返回第N- 1行的數(shù)據(jù):
dp[N - 1][0],dp[N - 1][N - 1]文章來源地址http://www.zghlxwxcb.cn/news/detail-537488.html

2.3.2 算法實現(xiàn)

class Solution {
public:
    vector<int> getRow(int rowIndex) {
        int numRows = rowIndex + 1;
        vector<vector<int>> dp(numRows);
        for(int i = 0; i < numRows; i++) {
            dp[i].resize(i + 1);
            dp[i][0] = dp[i][i] = 1;
        }

        for (int i = 2; i < numRows; i++) {
            for (int j = 1; j < i; j++)
                dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1];
        }

        return dp[rowIndex];

    }
};

到了這里,關(guān)于動態(tài)規(guī)劃-楊輝三角的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 打印楊輝三角

    打印楊輝三角

    這個公式,不好算,我覺得還是楊輝三角算起來方便:c#代碼如下: ? ?double 打印楊輝三角(int n)//n必須是偶數(shù),展開項是n+1,中間項是n/2,此處返回中間項的概率202306131722 ? ? ? ? { ? ? ? ? ? ? //for (int i = 0; i n; i++) ? ? ? ? ? ? //{ ? ? ? ? ? ? // ? ?//這種方法直接算,使

    2024年02月09日
    瀏覽(25)
  • 楊輝三角(Java)

    楊輝三角(Java)

    ?實現(xiàn)思路:我們可以先把楊輝三角想象成一個空的二維數(shù)組,然后再給它賦值輸出即可。 關(guān)鍵在于如何賦值:仔細觀察上圖可以得出除了 每一行第一個數(shù)以及最后一個數(shù)(都是1) , 中間的數(shù)字規(guī)律就是: a[ i ][ j ] = a[ i - 1 ][ j - 1 ] + a[ i - 1 ][ j ] 實現(xiàn)代碼: 相信大家更多的

    2024年02月08日
    瀏覽(16)
  • [LeetCode] #118 楊輝三角

    [LeetCode] #118 楊輝三角

    給定一個非負整數(shù)? numRows , 生成「楊輝三角」的前? numRows ? 行。 在「楊輝三角」中, 每個數(shù)是它左上方和右上方的數(shù)的和。 楊輝三角: ?

    2024年02月15日
    瀏覽(24)
  • C練習(xí)——楊輝三角

    C練習(xí)——楊輝三角

    題目: 打印近似楊輝三角,行數(shù)n自選 百度找的楊輝三角,參考一下: 解析: 把它的全部元素左對齊,就可以看成近似楊輝三角的樣子 1 1? 1 1? 2? 1 1? 3? 3? 1 1? 4? 6? 4? 1 …… ?每個數(shù)等于它上方兩數(shù)之和 每行數(shù)字左右對稱,由1開始逐漸變大 行數(shù)與列數(shù)相同,第n行有

    2024年01月17日
    瀏覽(18)
  • 【LeetCode】118. 楊輝三角

    【LeetCode】118. 楊輝三角

    題目鏈接 直覺解法: 以下的理論介紹 可以說和 本題的 代碼實現(xiàn) 毫無關(guān)系。 這個版本 需要注意 列表的邊界 思路: 前一行 兩端 補0 模擬。 結(jié)合 動圖 理解 題目 說明至少 一行,可以跳過 第一行的處理 官方版本

    2024年02月07日
    瀏覽(52)
  • 每日一題,楊輝三角

    每日一題,楊輝三角

    給定一個非負整數(shù)?numRows,生成「楊輝三角」的前?numRows?行。 示例 1: 示例?2:

    2024年02月04日
    瀏覽(24)
  • 【C語言】-- 楊輝三角

    【C語言】-- 楊輝三角

    目錄 一.什么是楊輝三角? 二.實現(xiàn)方法 1.直角三角形版 2.等腰三角形版 楊輝三角形,又稱賈憲三角形,帕斯卡三角形,是二項式系數(shù)在三角形中的一種幾何排列。 形如: 我們不難看出其存在明顯的規(guī)律。 即:圖片的 兩個斜邊都是數(shù)字1 , 其余的數(shù)都等于 它所在層的肩上(

    2024年02月13日
    瀏覽(22)
  • 【LeetCode】探索楊輝三角模型

    【LeetCode】探索楊輝三角模型

    力扣原題 首先我們要來了解一下題目本身在說些什么,通過下方的動圖我們可以更加清楚地看到楊輝三角是怎樣一步步生成的。 給到的示例中我們通過輸入楊輝三角的行數(shù),然后通過計算得到這個楊輝三角的每一行是什么具體的數(shù)值 首先我們要做的第一件事就是去選擇正確

    2024年02月14日
    瀏覽(22)
  • LC-楊輝三角-記憶版

    上一篇:LC-楊輝三角 上一篇講了楊輝三角的算法,不過之前的算法存在一個問題,比如: 我們可以看到計算a[5][3]和a[5][4]時都需要a[4][3]的值,之前我們是需要每次用到都重新計算,這樣就比較耗時,有沒有辦法記住已經(jīng)算過的值呢,當下次用的時候直接獲取就不用重新計算

    2024年02月13日
    瀏覽(18)
  • leetcode | 楊輝三角 | 電話號碼配對

    ? ?電話號碼的字母組合 楊輝三角? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

    2024年02月22日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包