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

數(shù)據(jù)結(jié)構(gòu)刷題(二十八):509斐波那契數(shù)、70爬樓梯、746 使用最小花費(fèi)爬樓梯

這篇具有很好參考價(jià)值的文章主要介紹了數(shù)據(jù)結(jié)構(gòu)刷題(二十八):509斐波那契數(shù)、70爬樓梯、746 使用最小花費(fèi)爬樓梯。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

動(dòng)態(tài)規(guī)劃篇:

一、509. 斐波那契數(shù)

思路:動(dòng)態(tài)規(guī)劃五部曲。根據(jù)本題的要求具體劃分:

  • 確定dp數(shù)組以及下標(biāo)的含義:dp[i]的定義為:第i個(gè)數(shù)的斐波那契數(shù)值是dp[i]
  • 確定遞推公式:狀態(tài)轉(zhuǎn)移方程 dp[i] = dp[i - 1] + dp[i - 2];
  • dp數(shù)組如何初始化:dp[0] = 0, dp[1] = 1;
  • 確定遍歷順序: 從遞歸公式dp[i] = dp[i - 1] + dp[i - 2];中可以看出,dp[i]是依賴 dp[i - 1] 和 dp[i - 2],那么遍歷的順序一定是從前到后遍歷的
  • 舉例推導(dǎo)dp數(shù)組:

代碼:文章來源地址http://www.zghlxwxcb.cn/news/detail-405741.html

class Solution {
    public int fib(int n) {
        if (n <= 1) return n;
        // 這里設(shè)置為n+1,因?yàn)?到n有n+1個(gè)數(shù)
        int[] fib = new int[n + 1];
        // 初始化
        fib[0] = 0;
        fib[1] = 1;
        for (int i = 2; i <= n; i++) {
            fib[i] = fib[i - 1] + fib[i - 2];
        }
        return fib[n];
    }
}

二、70. 爬樓梯

注意:這個(gè)題的初始化存在爭議,這里是默認(rèn)dp[1]=1作為開頭,不考慮dp[0]的情況。

public int climbStairs(int n) {
            // 1.確定dp數(shù)組
            int[] dp = new int[n + 1];
            if (n <= 2) return n;
            // 2.初始化dp數(shù)組, 這里不針對dp[0]做單獨(dú)歸一化
            dp[1] = 1;
            dp[2] = 2;
            for (int i = 3; i <= n; i++) {
                // 3.4. 確定遞推公式 和 確定遍歷順序
                dp[i] = dp[i - 1] + dp[i - 2];
            }
            return dp[n];
        }

三、746. 使用最小花費(fèi)爬樓梯

注意:dp初始化 是dp[0] = 0,dp[1] = 0;

遞推公式是dp[i] = min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2]);

還有注意for循環(huán)中的i <=n。

代碼:

class Solution {
    public int minCostClimbingStairs(int[] cost) {
        int n = cost.length;
        // dp[0] dp[1] 不算是樓梯里  所以索引是n + 1
        // 也可以理解成0到n,一共有n+1個(gè)數(shù)
        int[] dp = new int[n + 1];
        // 初始化
        dp[0] = 0;
        dp[1] = 0;
        // i <= n的意義在于最后要到樓頂,不是只在樓層上
        for (int i = 2; i <= n; i++) {
            dp[i] = Math.min(cost[i - 1] + dp[i - 1], cost[i - 2] + dp[i - 2]);
        }
        return dp[n];
    }
}

到了這里,關(guān)于數(shù)據(jù)結(jié)構(gòu)刷題(二十八):509斐波那契數(shù)、70爬樓梯、746 使用最小花費(fèi)爬樓梯的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 509. 斐波那契數(shù)

    斐波那契數(shù) ?(通常用? F(n) ?表示)形成的序列稱為? 斐波那契數(shù)列 ?。該數(shù)列由? 0 ?和? 1 ?開始,后面的每一項(xiàng)數(shù)字都是前面兩項(xiàng)數(shù)字的和。也就是: 給定? n ?,請計(jì)算? F(n) ?。 示例 1: 示例 2: 示例 3: 提示: 0 = n = 30

    2024年02月06日
    瀏覽(21)
  • 力扣 509. 斐波那契數(shù)

    力扣 509. 斐波那契數(shù)

    題目來源:https://leetcode.cn/problems/fibonacci-number/description/ ? ?C++題解1:根據(jù)題意,直接用遞歸函數(shù)。 C++題解2(來源代碼隨想錄):動(dòng)態(tài)規(guī)劃。動(dòng)規(guī)五部曲:這里我們要用一個(gè)一維dp數(shù)組來保存遞歸的結(jié)果。 確定dp數(shù)組以及下標(biāo)的含義:dp[i]的定義為第i個(gè)數(shù)的斐波那契數(shù)值是

    2024年02月15日
    瀏覽(21)
  • LeetCode 509 斐波那契數(shù)(動(dòng)態(tài)規(guī)劃)

    LeetCode 509 斐波那契數(shù)(動(dòng)態(tài)規(guī)劃)

    ?509. 斐波那契數(shù) - 力扣(LeetCode) ? 斐波那契數(shù) ?(通常用? F(n) ?表示)形成的序列稱為? 斐波那契數(shù)列 ?。該數(shù)列由? 0 ?和? 1 ?開始,后面的每一項(xiàng)數(shù)字都是前面兩項(xiàng)數(shù)字的和。也就是: 給定? n ?,請計(jì)算? F(n) ?。 【思路】動(dòng)態(tài)規(guī)劃 動(dòng)規(guī)五部曲: 1.確定dp數(shù)組以及下

    2024年02月07日
    瀏覽(26)
  • 【leetcode】509. 斐波那契數(shù)(easy)

    斐波那契數(shù) (通常用 F(n) 表示)形成的序列稱為 斐波那契數(shù)列 。該數(shù)列由 0 和 1 開始,后面的每一項(xiàng)數(shù)字都是前面兩項(xiàng)數(shù)字的和。也就是: F(0) = 0,F(xiàn)(1) = 1 F(n) = F(n - 1) + F(n - 2),其中 n 1 解答 :

    2024年02月13日
    瀏覽(25)
  • 動(dòng)態(tài)規(guī)劃之 509斐波那契數(shù)(第1道)

    動(dòng)態(tài)規(guī)劃之 509斐波那契數(shù)(第1道)

    題目: 斐波那契數(shù)?(通常用? 表示)形成的序列稱為 斐波那契數(shù)列 。該數(shù)列由?0 和 1 開始,后面的每一項(xiàng)數(shù)字都是前面兩項(xiàng)數(shù)字的和。也就是: , ,其中 n 1 給定?n ,請計(jì)算 。 題目鏈接:509. 斐波那契數(shù) - 力扣(LeetCode) 示例: 解法:

    2024年02月12日
    瀏覽(24)
  • (二十八)ArcGIS空間數(shù)據(jù)的轉(zhuǎn)換與處理——數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換

    (二十八)ArcGIS空間數(shù)據(jù)的轉(zhuǎn)換與處理——數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換

    空間數(shù)據(jù)的來源很多,如地圖、工程圖、規(guī)劃圖、航空與遙感影像等,因此空間數(shù)據(jù)也有多種格式。根據(jù)應(yīng)用需要,需對數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換,不同數(shù)據(jù)結(jié)構(gòu)間的轉(zhuǎn)換主要包括矢量數(shù)據(jù)到柵格數(shù)據(jù)的轉(zhuǎn)換和柵格數(shù)據(jù)到矢量數(shù)據(jù)的轉(zhuǎn)換。利用數(shù)據(jù)格式轉(zhuǎn)換工具,可以轉(zhuǎn)換Raster、

    2024年02月11日
    瀏覽(34)
  • 力扣第509題 斐波那契數(shù) 新手動(dòng)態(tài)規(guī)劃(推薦參考) c++

    509. 斐波那契數(shù) 簡單 相關(guān)標(biāo)簽 遞歸? ?記憶化搜索? ?數(shù)學(xué)? ?動(dòng)態(tài)規(guī)劃 斐波那契數(shù) ?(通常用? F(n) ?表示)形成的序列稱為? 斐波那契數(shù)列 ?。該數(shù)列由? 0 ?和? 1 ?開始,后面的每一項(xiàng)數(shù)字都是前面兩項(xiàng)數(shù)字的和。也就是: 給定? n ?,請計(jì)算? F(n) ?。 示例 1: 示例 2:

    2024年02月07日
    瀏覽(28)
  • LeetCode:509. 斐波那契數(shù) && 70. 爬樓梯 && 746. 使用最小花費(fèi)爬樓梯

    LeetCode:509. 斐波那契數(shù) && 70. 爬樓梯 && 746. 使用最小花費(fèi)爬樓梯

    斐波那契數(shù) (通常用 F(n) 表示)形成的序列稱為 斐波那契數(shù)列 。該數(shù)列由 0 和 1 開始,后面的每一項(xiàng)數(shù)字都是前面兩項(xiàng)數(shù)字的和。也就是: F(0) = 0,F(xiàn)(1) = 1 F(n) = F(n - 1) + F(n - 2),其中 n 1 給定 n ,請計(jì)算 F(n) 。 假設(shè)你正在爬樓梯。需要 n 階你才能到達(dá)樓頂。 每次你可以爬

    2024年02月05日
    瀏覽(20)
  • 從0開始學(xué)C++ 第二十八課 數(shù)據(jù)結(jié)構(gòu)深入 - 棧和隊(duì)列

    第二十八課:數(shù)據(jù)結(jié)構(gòu)深入 - 棧和隊(duì)列 學(xué)習(xí)目標(biāo): 理解棧(Stack)的基本概念和特性。 掌握隊(duì)列(Queue)的基本概念和特性。 學(xué)會(huì)在C++中使用棧和隊(duì)列。 了解棧和隊(duì)列的典型應(yīng)用場景。 學(xué)習(xí)內(nèi)容: 棧(Stack) 概念:棧是一種后進(jìn)先出(LIFO, Last In First Out)的數(shù)據(jù)結(jié)構(gòu),元素

    2024年01月23日
    瀏覽(18)
  • 算法Day38 | 動(dòng)態(tài)規(guī)劃,509. 斐波那契數(shù), 70. 爬樓梯, 746. 使用最小花費(fèi)爬樓梯

    動(dòng)態(tài)規(guī)劃是一種解決問題的算法思想。它通常用于優(yōu)化問題,其中要求找到一個(gè)最優(yōu)解或最大化(最小化)某個(gè)目標(biāo)函數(shù)。 動(dòng)態(tài)規(guī)劃的核心思想是 將問題分解成更小的子問題,并通過存儲(chǔ)子問題的解來避免重復(fù)計(jì)算 。這樣,可以通過解決子問題來構(gòu)建原始問題的解。動(dòng)態(tài)規(guī)

    2024年02月09日
    瀏覽(25)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包