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

【算法】動態(tài)規(guī)劃 ① ( 動態(tài)規(guī)劃簡介 | 自底向上的動態(tài)規(guī)劃示例 | 自頂向下的動態(tài)規(guī)劃示例 )

這篇具有很好參考價值的文章主要介紹了【算法】動態(tài)規(guī)劃 ① ( 動態(tài)規(guī)劃簡介 | 自底向上的動態(tài)規(guī)劃示例 | 自頂向下的動態(tài)規(guī)劃示例 )。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。





一、動態(tài)規(guī)劃簡介



動態(tài)規(guī)劃 , 英文名稱 Dynamic Programming , 簡稱 DP , 不是具體的某種算法 , 是一種算法思想 ;

具體的算法都有具體的步驟 , 如 : 二分法 , 其 有固定的解決步驟 , 先取一個中心點 , 判斷解在左邊還是右邊 , 然后在一邊再取一個中心點 , 再進行判定 , 該算法有具體的步驟 ;


動態(tài)規(guī)劃 , 沒有具體的步驟 , 只有一個核心思想 ;

動態(tài)規(guī)劃 的 核心思想 是 由大化小 , 大規(guī)模問題 使用 小規(guī)模問題 計算結果 解決 , 類似于 分治算法 ;


動態(tài)規(guī)劃 與 貪心算法 區(qū)別 :

  • 動態(tài)規(guī)劃為了長遠利益 損害當前利益 ; 動態(tài)規(guī)劃 不僅僅 考慮下一步的利益 , 還 對 后面十幾步甚至幾十步進行了大量計算 , 得到了最佳結果 ;
  • 貪心算法 只注重 當前利益最大化 ; 貪心算法 只考慮下一步的最佳利益 ;

動態(tài)規(guī)劃 實現(xiàn)方法 :

  • 遞歸 : 記憶化搜索 的實現(xiàn) ;
  • for 循環(huán) : 使用 多重 for 循環(huán) 實現(xiàn) ;




二、自底向上的動態(tài)規(guī)劃示例



從 下圖的 數(shù)字三角形 中 從上到下 找到一條 最短路徑 ;

動態(tài)規(guī)劃自底向上和自頂向下,算法,算法,動態(tài)規(guī)劃,貪心算法,自底向上的動態(tài)規(guī)劃,自頂向下的動態(tài)規(guī)劃


1、原理分析


自底向上 的動態(tài)規(guī)劃思想 : 下面的 n 的最佳路徑 指的是 以 n 為起點 到達 最底層的 的最短路徑 ;


頂部的 1 的最佳路徑 依賴于 2 和 3 中的 最佳路徑 , 選擇最佳的路徑即可 ;

  • 2 的最佳路徑 依賴于 4 和 -5 中的最佳路徑 ,
    • 4 的最佳路徑 依賴于 7 和 8 中的最佳路徑 ,
    • -5 的最佳路徑 依賴于 8 和 9 中的最佳路徑 ,
  • 3 的最佳路徑 依賴于 -5 和 6 中的最佳路徑 ,
    • -5 的最佳路徑 依賴于 8 和 9 中的最佳路徑 ,
    • 6 的最佳路徑 依賴于 9 和 10 中的最佳路徑 ,

最后一排中 ( 第四排 ) :

  • 7 走到最底層的 最小路徑 是其本身 7
  • 8 走到最底層的 最小路徑 是其本身 8
  • 9 走到最底層的 最小路徑 是其本身 9
  • 10 走到最底層的 最小路徑 是其本身 10

倒數(shù)第二排 ( 第三排 ) :

  • 4 的 最短路徑 從 7 和 8 之間取最短的最短路徑 , 是 7 , 對應最短路徑 7 , 最短路徑為 4 + 7 = 11
  • -5 的最短路徑 從 8 和 9 之間取最短的最短路徑 , 是 8 , 對應最短路徑 8 , 最短路徑為 -5 + 8 = 3
  • 6 的 最短路徑 從 9 和 10 之間取最短的最短路徑 , 是 9 , 對應最短路徑 9 , 最短路徑為 6 + 9 = 15

倒數(shù)第三排 ( 第二排 ) :

  • 2 的 最短路徑 從 4 和 -5 之間取最短的最短路徑 , 是 -5 , 對應最短路徑 3 , 最短路徑為 2 + 3 = 5
  • 3 的最短路徑 從 -5 和 6 之間取最短的最短路徑 , 是 -5 , 對應最短路徑 3 , 最短路徑為 3 + 3 = 6

倒數(shù)第四排 ( 第一排 ) :

  • 1 的 最短路徑 從 2 和 3 之間取最短的最短路徑 , 是 2 , 對應最短路徑 5 , 最短路徑為 1 + 5 = 6

通過分析 , 可以得出 從 1 開始的最短路徑為 1 -> 2 -> -5 -> 8 , 最短路徑為 6 ;

動態(tài)規(guī)劃自底向上和自頂向下,算法,算法,動態(tài)規(guī)劃,貪心算法,自底向上的動態(tài)規(guī)劃,自頂向下的動態(tài)規(guī)劃


2、算法設計


將下圖的數(shù)據(jù) , 存放到 二維數(shù)組 triangle 中 , 作為 數(shù)據(jù)源 使用 ;

該 triangle 二維數(shù)組 ,

  • 第 0 行有 1 個數(shù)字 ,
  • 第 1 行有 2 個數(shù)字 ,
    … ,
  • 第 n-1 行有 n 個數(shù)字 ;

該二維數(shù)組的長度 , 就是 數(shù)字三角形 中的行數(shù) ;

動態(tài)規(guī)劃自底向上和自頂向下,算法,算法,動態(tài)規(guī)劃,貪心算法,自底向上的動態(tài)規(guī)劃,自頂向下的動態(tài)規(guī)劃


狀態(tài)記錄 : 創(chuàng)建 二維數(shù)組 dp , dp[i][j] 表示從 第 i 行 第 j 列的元素出發(fā) , 數(shù)組的元素值就是走到最底層的最短路徑 ;

dp 二維數(shù)組 的作用就是用于 記錄狀態(tài)值 , 如 :

  • dp[0][0] 表示從第 0 行第 0 列 的 1 出發(fā) , 走到最底層的最短路徑 , 其值為 6 ;
  • dp[3][2] 表示從第 3 行第 2 列 的 -5 出發(fā) , 走到最底層的最短路徑 , 其值為 3 ;

dp[0] 只有一個有效元素 , dp[1] 有兩個有效元素 , dp[2] 有三個有效元素 , dp[4] 有四個有效元素 ;


初始化數(shù)據(jù) : 假設 該 三角形有 n 行數(shù)據(jù) ;

那么 , 第 n - 1 行 , 也就是最后一行 , 該 n - 1 行有 n 個數(shù)字 , i 取值 0 ~ n - 1 , 則 dp[n-1][i] 的值就是 其本身 triangle[n-1][i]

數(shù)字三角形 最后一行 數(shù)字 , 即 n -1 行 數(shù)字 , 作為 初始化數(shù)據(jù) ; 然后開始從 n - 2 行開始計算 ;


運算方程 : 設置具體的算法如何進行計算 , 從 n - 2 行開始計算 本行數(shù)據(jù)的 最短路徑 ;

n - 2 行 的 第 i 個數(shù)字 的 最短路徑 , 依賴于 n - 1 行 第 i 個數(shù)字第 i + 1 個數(shù)字最短路徑 , 取較小的最短路徑 ;


最終結果 : 使用上述 運算方程 從 第 n - 2 行 進行遍歷 , 最終計算出 第 0 行 第 0 列 數(shù)字元素的最短路徑 , 存儲在二維數(shù)組 dp[0][0] 元素上 ;


上述算法中 二維數(shù)組 dp 中 , 每個元素 , 第 dp[i][j] 就是一個 子問題 , 表示 數(shù)字三角形中 第 i 行 第 j 列 元素的 最短路徑 , 通過這些子問題的解決 , 最終得到一個 大規(guī)模問題的 解決方案 ;



3、代碼示例


代碼示例 :

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Solution {

    /**
     * 三角形最短路徑
     * @param triangle  三角形數(shù)據(jù)
     * @return
     */
    public int minimumTotal(List<List<Integer>> triangle) {
        int n = triangle.size();

        // 動態(tài)規(guī)劃狀態(tài) :
        // dp[i][j] 表示從 第 i 行 第 j 列的元素出發(fā) ,
        // 數(shù)組的元素值就是走到最底層的最短路徑 ;
        int[][] dp = new int[n][n];


        // 動態(tài)規(guī)劃初始化 :
        // 第 n - 1 行 , 也就是最后一行 , 該 n - 1 行有 n 個數(shù)字 , i 取值 0 ~ n - 1 ,
        // 則 dp[n-1][i] 的值就是 其本身 triangle[n-1][i]
        // 數(shù)字三角形 最后一行 數(shù)字 , 即 n -1 行 數(shù)字 , 作為 初始化數(shù)據(jù) ;
        // 然后開始從 n - 2 行開始計算 ;
        for (int i = 1; i < n; i++) {
            dp[n - 1][i] = triangle.get(n - 1).get(i);
        }

        // 動態(tài)規(guī)劃方程 :
        // n - 2 行 的 第 i 個數(shù)字 的 最短路徑 ,
        // 依賴于 n - 1 行 的 第 i 個數(shù)字 和 第 i + 1 個數(shù)字 的 最短路徑 ,
        // 取較小的最短路徑 ;
        for (int i = n - 2; i > -1; i--) {
            for (int j = 0; j < i + 1; j++) {
                dp[i][j] = Math.min(dp[i + 1][j], dp[i + 1][j + 1]) // 先取一個最短路徑最小值
                        + triangle.get(i).get(j);   // 再加上改點計算出一個新的最短路徑
            }
        }

        // 動態(tài)規(guī)劃結果 :
        // 使用上述 運算方程 從 第 n - 2 行 進行遍歷 ,
        // 最終計算出 第 0 行 第 0 列 數(shù)字元素的最短路徑 ,
        // 存儲在二維數(shù)組 dp[0][0] 元素上 ;
        return dp[0][0];
    }


    public static void main(String[] args) {
        List<List<Integer>> triangle = new ArrayList<List<Integer>>(){
            {
                add(new ArrayList<Integer>(Arrays.asList(1)));
                add(new ArrayList<Integer>(Arrays.asList(2, 3)));
                add(new ArrayList<Integer>(Arrays.asList(4, -5, 6)));
                add(new ArrayList<Integer>(Arrays.asList(7, 8, 9, 10)));
            }
        };

        int minTotal = new Solution().minimumTotal(triangle);
        System.out.println("三角形最短路徑為 " + minTotal);
    }
}

執(zhí)行結果 :

三角形最短路徑為 6

動態(tài)規(guī)劃自底向上和自頂向下,算法,算法,動態(tài)規(guī)劃,貪心算法,自底向上的動態(tài)規(guī)劃,自頂向下的動態(tài)規(guī)劃





三、自頂向下的動態(tài)規(guī)劃示例



從 下圖的 數(shù)字三角形 中 從上到下 找到一條 最短路徑 ;

動態(tài)規(guī)劃自底向上和自頂向下,算法,算法,動態(tài)規(guī)劃,貪心算法,自底向上的動態(tài)規(guī)劃,自頂向下的動態(tài)規(guī)劃


每個點 都有 從起點開始 走到該點 的 最短路徑 ;

  • 4 這個點 , 從 起點 1 開始走 , 肯定走 1 -> 2 -> 4 路線 是最短路徑 , 為 7 ;
  • -5 這個點 , 從 起點 1 開始走 , 肯定走 1 -> 2 -> -5 路線 是最短路徑 , 為 -2 ;


1、算法設計


狀態(tài)記錄 : 創(chuàng)建 二維數(shù)組 dp , dp[i][j] 表示從 起點 走到 第 i 行 第 j 列的元素的最短路徑 , 數(shù)組的元素值就是走到最底層的最短路徑 ;

dp 二維數(shù)組 的作用就是用于 記錄狀態(tài)值 , 如 :

  • dp[0][0] 表示 從起點 第 0 行第 0 列 的 1 出發(fā) , 走到當前點 第 0 行第 0 列 的 1 的最短路徑 , 其值為 1 ;
  • dp[3][2] 表示 從起點 第 0 行第 0 列 的 1 出發(fā) , 走到當前點 第 3 行第 2 列 的 -5 的最短路徑 , 其值為 -2 ;

dp[0] 只有一個有效元素 , dp[1] 有兩個有效元素 , dp[2] 有三個有效元素 , dp[4] 有四個有效元素 ;


初始化數(shù)據(jù) : 沒有辦法套入 動態(tài)規(guī)劃方程 中的點 進行初始化操作 ;

在套用下面的 運算方程時 , 會發(fā)現(xiàn) , 最左側的一排數(shù)字 , 沒有左上角的元素 , 也就是 第 i 行 第 j 列 的數(shù)字 其左上角的數(shù)字是 第 i - 1 行 第 j - 1 列 , 如果 j = 0 , 那么左上角 j - 1 肯定為負數(shù) ; 因此 最左側一列 和 最右側一列 是無法在 運算方程中直接計算的 ;

此處初始化 頂點 的最短路徑 , 和 最左側一列 和 最右側一列 數(shù)字 的最短路徑 ;


運算方程 : 設置具體的算法如何進行計算 , 從 n - 2 行開始計算 本行數(shù)據(jù)的 最短路徑 ;

第 i 行 第 j 列 的數(shù)字 , 從頂點走到該點的最短路徑 , 依賴于 左上角 第 i - 1 行 第 j - 1 列 的 數(shù)字 的最短路徑 , 和 右上角 的 第 i - 1 行 第 j 列 的 數(shù)字 的 最短路徑 , 找出 上面 二者 最短路徑較小 的最短路徑 作為結果 ;


最終結果 : 在進行最后一層 計算時 , 會得到 第 n - 1 層 , 也就是最后一層 , 所有元素的最短路徑 , 選擇 最小的 最短路徑 , 就是本次的最短路徑 ;


上述算法中 二維數(shù)組 dp 中 , 每個元素 , 第 dp[i][j] 就是一個 子問題 , 表示 數(shù)字三角形中 從起點開始 第 i 行 第 j 列 元素的 最短路徑 , 通過這些子問題的解決 , 最終得到一個 大規(guī)模問題的 解決方案 ;



2、代碼示例


代碼示例 :

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Solution {

    /**
     * 三角形最短路徑
     * @param triangle  三角形數(shù)據(jù)
     * @return
     */
    public int minimumTotal(List<List<Integer>> triangle) {
        int n = triangle.size();

        // 動態(tài)規(guī)劃狀態(tài) :
        // dp[i][j] 表示從 起點 走到 第 i 行 第 j 列的元素的最短路徑 ,
        // 數(shù)組的元素值就是走到最底層的最短路徑 ;
        int[][] dp = new int[n][n];


        // 動態(tài)規(guī)劃初始化 : 沒有辦法套入 動態(tài)規(guī)劃方程 中的點 進行初始化操作
        // 起始點的最短路徑是其本身
        dp[0][0] = triangle.get(0).get(0);
        // 遍歷 1 ~ n 行
        for (int i = 1; i < n; i++) {
            // 每行第 0 個元素的 最短路徑 , 該元素沒有左上角的點
            dp[i][0] = dp[i - 1][0] + triangle.get(i).get(0);
            // 每行第 n - 1 個元素的 最短路徑 , 該元素沒有右上角的點
            dp[i][i] = dp[i - 1][i - 1] + triangle.get(i).get(i);
        }

        // 動態(tài)規(guī)劃方程 :
        // 第 i 行 第 j 列 的數(shù)字 , 走到該點的最短路徑 ,
        // 依賴于 左上角 第 i - 1 行 第 j - 1 列 的 數(shù)字 的最短路徑 ,
        // 和 正上方的 第 i - 1 行 第 j 列 的 數(shù)字 的 最短路徑 ,
        // 找出 上面 二者 最短路徑較小 的最短路徑 作為結果 ;
        // 此處從 i = 2 開始 , 是因為 第一排的兩個數(shù)字的最短路徑已經(jīng)初始化過了 , 在初始化中已經(jīng)進行了初始化
        for (int i = 2; i < n; i++) {
            // j 的取值只能是 1 ~ i - 1 , 將每一行的 第 0 個 和 第 i 個 元素剔除出去
            for (int j = 1; j < i; j++) {
                dp[i][j] = Math.min(dp[i - 1][j - 1], dp[i - 1][j]) + triangle.get(i).get(j);
            }
        }

        // 動態(tài)規(guī)劃結果 :
        // 在進行最后一層 計算時 , 會得到 第 n - 1 層 , 也就是最后一層 , 所有元素的最短路徑 ,
        // 選擇 最小的 最短路徑 , 就是本次的最短路徑 ;
        int minTotal = dp[n - 1][0];
        for (int i = 1; i < n; ++i) {
            minTotal = Math.min(minTotal, dp[n - 1][i]);
        }
        return minTotal;
    }


    public static void main(String[] args) {
        List<List<Integer>> triangle = new ArrayList<List<Integer>>(){
            {
                add(new ArrayList<Integer>(Arrays.asList(1)));
                add(new ArrayList<Integer>(Arrays.asList(2, 3)));
                add(new ArrayList<Integer>(Arrays.asList(4, -5, 6)));
                add(new ArrayList<Integer>(Arrays.asList(7, 8, 9, 10)));
            }
        };

        int minTotal = new Solution().minimumTotal(triangle);
        System.out.println("三角形最短路徑為 " + minTotal);
    }
}

執(zhí)行結果 :

三角形最短路徑為 6

動態(tài)規(guī)劃自底向上和自頂向下,算法,算法,動態(tài)規(guī)劃,貪心算法,自底向上的動態(tài)規(guī)劃,自頂向下的動態(tài)規(guī)劃文章來源地址http://www.zghlxwxcb.cn/news/detail-795540.html

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

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

領支付寶紅包贊助服務器費用

相關文章

  • Java中常用算法及示例-分治、迭代、遞歸、遞推、動態(tài)規(guī)劃、回溯、窮舉、貪心

    Java中常用算法及示例-分治、迭代、遞歸、遞推、動態(tài)規(guī)劃、回溯、窮舉、貪心

    1、分治算法的基本思想是將一個計算復雜的問題分成規(guī)模較小、計算簡單的小問題求解, 然后綜合各個小問題,得到最終答案。 2、窮舉(又稱枚舉)算法的基本思想是從所有可能的情況中搜索正確的答案。 3、迭代法(Iterative Method) 無法使用公式一次求解,而需要使用重復結構

    2024年02月08日
    瀏覽(25)
  • 2023-05-02 動態(tài)規(guī)劃簡介

    2023-05-02 動態(tài)規(guī)劃簡介

    階段、狀態(tài)、決策、策略、狀態(tài)轉移方程 1) 階段和階段變量 將問題的全過程恰當?shù)胤殖扇舾蓚€相互聯(lián)系的階段 閆氏DP分析法:對應f[i][j]的ij遍歷時形成的所有f[i][j] 階段的劃分一般根據(jù)時間和空間的自然特征去劃分 階段的劃分便于把問題轉化成 多階段決策 問題 2) 狀態(tài)和狀

    2024年02月03日
    瀏覽(20)
  • 【算法】動態(tài)規(guī)劃 ⑧ ( 動態(tài)規(guī)劃特點 )

    【算法】動態(tài)規(guī)劃 ⑧ ( 動態(tài)規(guī)劃特點 )

    求解類型 : 動態(tài)規(guī)劃 必須是求 最值 , 可行性 , 方案數(shù) , 三者之一 , 如果求其它內(nèi)容 , 則不能使用動態(tài)規(guī)劃算法 ; 求最值 : 最大值 , 最小值 等 ; 大規(guī)模問題的結果 由 小規(guī)模問題 的計算結果 取最大值 大規(guī)模問題的結果 由 小規(guī)模問題 的計算結果 取最小值 可行性 : 是否可行

    2023年04月08日
    瀏覽(22)
  • 【算法 - 動態(tài)規(guī)劃】原來寫出動態(tài)規(guī)劃如此簡單!

    【算法 - 動態(tài)規(guī)劃】原來寫出動態(tài)規(guī)劃如此簡單!

    從本篇開始,我們就正式開始進入 動態(tài)規(guī)劃 系列文章的學習。 本文先來練習兩道通過 建立緩存表 優(yōu)化解題過程的題目,對如何將 遞歸函數(shù) 修改成 動態(tài)規(guī)劃 的流程有個基本的熟悉。 用最簡單的想法完成題目要求的 遞歸 函數(shù); 定義明確 遞歸函數(shù) 的功能!??! 分析是否存

    2024年02月21日
    瀏覽(29)
  • 基于PCL的RANSAC(隨機采樣一致)算法簡介與示例

    基于PCL的RANSAC(隨機采樣一致)算法簡介與示例

    RANSAC(Random sample consensus,隨機采樣一致)是3D點云擬合的一種重要的手段,可以對直線、圓、平面,圓球、圓柱等形狀的點云進行擬合,其優(yōu)點在于可以最大程度上減少噪聲點對擬合效果的影響。 RANSAC各種類型擬合的計算原理基本類似。 1,進行隨機抽樣,如直線,就隨機找

    2024年02月02日
    瀏覽(20)
  • 60題學會動態(tài)規(guī)劃系列:動態(tài)規(guī)劃算法第三講

    60題學會動態(tài)規(guī)劃系列:動態(tài)規(guī)劃算法第三講

    簡單多狀態(tài)問題 文章目錄 一.按摩師 二.打家劫舍系列 三.刪除并獲得點數(shù) 四.粉刷房子 力扣鏈接:力扣 一個有名的按摩師會收到源源不斷的預約請求,每個預約都可以選擇接或不接。在每次預約服務之間要有休息時間,因此她不能接受相鄰的預約。給定一個預約請求序列,

    2024年02月08日
    瀏覽(24)
  • 60題學會動態(tài)規(guī)劃系列:動態(tài)規(guī)劃算法第二講

    60題學會動態(tài)規(guī)劃系列:動態(tài)規(guī)劃算法第二講

    都是路徑問題~ 文章目錄 1.不同路徑 2.不同路徑II 3.禮物的最大價值 4.下降路徑最小和 5.最小路徑和 力扣鏈接:力扣 一個機器人位于一個? m x n ? 網(wǎng)格的左上角 (起始點在下圖中標記為 “Start” )。 機器人每次只能向下或者向右移動一步。機器人試圖達到網(wǎng)格的右下角(在

    2024年02月07日
    瀏覽(29)
  • 60題學會動態(tài)規(guī)劃系列:動態(tài)規(guī)劃算法第四講

    60題學會動態(tài)規(guī)劃系列:動態(tài)規(guī)劃算法第四講

    買賣股票相關的動態(tài)規(guī)劃題目 文章目錄 1. 買賣股票的最佳時機含冷凍期 2. 買賣股票的最佳時期含?續(xù)費 3. 買賣股票的最佳時機III 4. 買賣股票的最佳時機IV 力扣鏈接:力扣 給定一個整數(shù)數(shù)組 prices ,其中第? ? prices[i] ?表示第? i ?天的股票價格 。? 設計一個算法計算出最

    2024年02月13日
    瀏覽(23)
  • 60題學會動態(tài)規(guī)劃系列:動態(tài)規(guī)劃算法第五講

    60題學會動態(tài)規(guī)劃系列:動態(tài)規(guī)劃算法第五講

    子數(shù)組系列題目 文章目錄 1.最大子數(shù)組和 2.環(huán)形子數(shù)組的最大和 3.乘積最大數(shù)組 4.乘積為正數(shù)的最長子數(shù)組長度 5.等差數(shù)列劃分 6.最長湍流子數(shù)組 7.單詞拆分 8.環(huán)繞字符串中唯一的子字符串 力扣鏈接:力扣 給你一個整數(shù)數(shù)組? nums ?,請你找出一個具有最大和的連續(xù)子數(shù)組(

    2024年02月15日
    瀏覽(27)
  • 60題學會動態(tài)規(guī)劃系列:動態(tài)規(guī)劃算法第一講

    60題學會動態(tài)規(guī)劃系列:動態(tài)規(guī)劃算法第一講

    堅持就是勝利 - -? 文章目錄 1.第N個泰波那切數(shù) 2.三步問題 3.使用最小花費爬樓梯 4.解碼方法 力扣鏈接:力扣 泰波那契序列?Tn?定義如下:? T0?= 0, T1?= 1, T2?= 1, 且在 n = 0?的條件下 Tn+3?= Tn?+ Tn+1?+ Tn+2 給你整數(shù)? n ,請返回第 n 個泰波那契數(shù)?Tn?的值。 ?首先我們分析一下

    2024年02月06日
    瀏覽(20)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包