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

【動(dòng)態(tài)規(guī)劃專欄】專題一:斐波那契數(shù)列模型--------2.三步問(wèn)題

這篇具有很好參考價(jià)值的文章主要介紹了【動(dòng)態(tài)規(guī)劃專欄】專題一:斐波那契數(shù)列模型--------2.三步問(wèn)題。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

本專欄內(nèi)容為:算法學(xué)習(xí)專欄,分為優(yōu)選算法專欄,貪心算法專欄,動(dòng)態(tài)規(guī)劃專欄以及遞歸,搜索與回溯算法專欄四部分。 通過(guò)本專欄的深入學(xué)習(xí),你可以了解并掌握算法。

??博主csdn個(gè)人主頁(yè):小小unicorn
?專欄分類:動(dòng)態(tài)規(guī)劃專欄
??代碼倉(cāng)庫(kù):小小unicorn的代碼倉(cāng)庫(kù)??
??????關(guān)注我?guī)銓W(xué)習(xí)編程知識(shí)

題目來(lái)源

本題來(lái)源為:

Leetcode面試題 08.01. 三步問(wèn)題

題目描述

三步問(wèn)題。有個(gè)小孩正在上樓梯,樓梯有n階臺(tái)階,小孩一次可以上1階、2階或3階。實(shí)現(xiàn)一種方法,計(jì)算小孩有多少種上樓梯的方式。結(jié)果可能很大,你需要對(duì)結(jié)果模1000000007。
【動(dòng)態(tài)規(guī)劃專欄】專題一:斐波那契數(shù)列模型--------2.三步問(wèn)題,算法專欄,# 動(dòng)態(tài)規(guī)劃算法專欄,動(dòng)態(tài)規(guī)劃,算法,c++

題目解析

【動(dòng)態(tài)規(guī)劃專欄】專題一:斐波那契數(shù)列模型--------2.三步問(wèn)題,算法專欄,# 動(dòng)態(tài)規(guī)劃算法專欄,動(dòng)態(tài)規(guī)劃,算法,c++
我們模擬一下小孩上樓梯的過(guò)程,會(huì)很容易發(fā)現(xiàn)規(guī)律

算法原理

1.狀態(tài)表示

經(jīng)驗(yàn)+題目要求

而經(jīng)驗(yàn)就是:以i位置為結(jié)尾+…
對(duì)一維的dp而言,基本上就是兩種:以i位置為結(jié)尾+…或者以i位置為開(kāi)始+…

…表示根據(jù)題目要求進(jìn)行補(bǔ)充完整。

對(duì)于本題而言:
【動(dòng)態(tài)規(guī)劃專欄】專題一:斐波那契數(shù)列模型--------2.三步問(wèn)題,算法專欄,# 動(dòng)態(tài)規(guī)劃算法專欄,動(dòng)態(tài)規(guī)劃,算法,c++

dp[i] 表示:到達(dá)i位置時(shí),一共有多少種方法

2.狀態(tài)轉(zhuǎn)移方程

在推導(dǎo)時(shí)基本上就是:

以i位置的狀態(tài),最近的一步,來(lái)劃分問(wèn)題

對(duì)于本題而言:到達(dá)i位置需要分三種情況
【動(dòng)態(tài)規(guī)劃專欄】專題一:斐波那契數(shù)列模型--------2.三步問(wèn)題,算法專欄,# 動(dòng)態(tài)規(guī)劃算法專欄,動(dòng)態(tài)規(guī)劃,算法,c++
因此狀態(tài)方程為:

dp[i]=dp[i-3]+dp[i-2]+dp[i-1];

3.初始化

根據(jù)狀態(tài)轉(zhuǎn)移方程:本題為防止越界需要處理下標(biāo)為1,2,3位置的值:

dp[1]=1;
dp[2]=2;
dp[3]=4;

4.填表順序

根據(jù)狀態(tài)轉(zhuǎn)移方程,我們計(jì)算dp[i]位置的值需要i-1與i-2與i-3位置的值,因此我們的填表順序?yàn)椋?strong>從左往右

5.返回值

根據(jù)題目要求直接返回dp[n]文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-834471.html

代碼實(shí)現(xiàn)

class Solution 
{
public:
    int waysToStep(int n) 
    {
         // 1.創(chuàng)建dp表
        // 2.初始化
        // 3.填表
        // 4.返回值
        
        const int MOD=1e9+7;
        //處理邊界情況:
        if(n==1)
        return 1;
        if(n==2)
        return 2;
        if(n==3)
        return 4;

        //創(chuàng)建dp表
        vector<int> dp(n+1);
        //初始化
        dp[1]=1;
        dp[2]=2;
        dp[3]=4;
        //填表:
        for(int i=4;i<=n;i++)
        {
            dp[i]=((dp[i-3]+dp[i-2])%MOD+dp[i-1])%MOD;
        }
        return dp[n];
        
    }
};

到了這里,關(guān)于【動(dòng)態(tài)規(guī)劃專欄】專題一:斐波那契數(shù)列模型--------2.三步問(wèn)題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【算法優(yōu)選】 動(dòng)態(tài)規(guī)劃之斐波那契數(shù)列模型

    動(dòng)態(tài)規(guī)劃相關(guān)題目都可以參考以下五個(gè)步驟進(jìn)行解答: 狀態(tài)表? 狀態(tài)轉(zhuǎn)移?程 初始化 填表順序 返回值 后面題的解答思路也將按照這五個(gè)步驟進(jìn)行講解。 泰波那契序列 Tn 定義如下: T0 = 0, T1 = 1, T2 = 1, 且在 n = 0 的條件下 Tn+3 = Tn + Tn+1 + Tn+2 給你整數(shù) n,請(qǐng)返回第 n 個(gè)泰波那契

    2024年02月05日
    瀏覽(25)
  • 動(dòng)態(tài)規(guī)劃入門:斐波那契數(shù)列模型以及多狀態(tài)(C++)

    動(dòng)態(tài)規(guī)劃入門:斐波那契數(shù)列模型以及多狀態(tài)(C++)

    ????動(dòng)態(tài)規(guī)劃(Dynamic programming,簡(jiǎn)稱 DP)是一種解決多階段決策問(wèn)題的算法思想。它將問(wèn)題分解為多個(gè)階段,并通過(guò)保存中間結(jié)果來(lái)避免重復(fù)計(jì)算,從而提高效率。 動(dòng)態(tài)規(guī)劃的解題步驟一般分為以下幾步: 思考狀態(tài)表示,創(chuàng)建dp表(重點(diǎn)) 分析出狀態(tài)轉(zhuǎn)移方程(重點(diǎn)) 初始化 確定

    2024年02月11日
    瀏覽(25)
  • Java【動(dòng)態(tài)規(guī)劃】斐波那契數(shù)列模型, 圖文思路詳解 + 代碼實(shí)現(xiàn)

    Java【動(dòng)態(tài)規(guī)劃】斐波那契數(shù)列模型, 圖文思路詳解 + 代碼實(shí)現(xiàn)

    本篇總結(jié)動(dòng)態(tài)規(guī)劃中的 斐波那契數(shù)列模型 的解法和思路 按照以下流程進(jìn)行分析題目和代碼編寫 思路分析步驟 代碼編寫步驟 1, 狀態(tài)表示 1, 構(gòu)造 dp 表 2, 狀態(tài)轉(zhuǎn)移方程 2, 初始化+邊界處理 3, 初始化 3, 填表(抄狀態(tài)轉(zhuǎn)移方程) 4, 填表順序 4, 返回結(jié)果 5, 返回值 / OJ鏈接 題目分析

    2024年02月08日
    瀏覽(21)
  • 動(dòng)態(tài)規(guī)劃入門篇——斐波那契數(shù)列與爬樓梯問(wèn)題

    ? ? ? ?動(dòng)態(tài)規(guī)劃(Dynamic Programming,簡(jiǎn)稱DP)是運(yùn)籌學(xué)的一個(gè)分支,也是求解多階段決策過(guò)程最優(yōu)化問(wèn)題的一種方法。它主要用來(lái)解決一類最優(yōu)化問(wèn)題,通過(guò)將復(fù)雜問(wèn)題分解成若干個(gè)子問(wèn)題,并綜合子問(wèn)題的最優(yōu)解來(lái)得到原問(wèn)題的最優(yōu)解。動(dòng)態(tài)規(guī)劃的核心在于對(duì)問(wèn)題的狀態(tài)進(jìn)

    2024年03月14日
    瀏覽(39)
  • Java數(shù)據(jù)結(jié)構(gòu)與算法:動(dòng)態(tài)規(guī)劃之斐波那契數(shù)列

    大家好,我是免費(fèi)搭建查券返利機(jī)器人賺傭金就用微賺淘客系統(tǒng)3.0的小編。在這寒冷的季節(jié)里,讓我們一同探討Java中的動(dòng)態(tài)規(guī)劃,重點(diǎn)關(guān)注解決問(wèn)題的經(jīng)典代表之一——斐波那契數(shù)列。 動(dòng)態(tài)規(guī)劃簡(jiǎn)介 動(dòng)態(tài)規(guī)劃是一種解決問(wèn)題的數(shù)學(xué)方法,通常用于優(yōu)化遞歸算法。它通過(guò)將問(wèn)

    2024年01月22日
    瀏覽(21)
  • DAY42:動(dòng)態(tài)規(guī)劃(二)斐波那契數(shù)列+爬樓梯+最小花費(fèi)爬樓梯

    DAY42:動(dòng)態(tài)規(guī)劃(二)斐波那契數(shù)列+爬樓梯+最小花費(fèi)爬樓梯

    斐波那契數(shù) (通常用 F(n) 表示)形成的序列稱為 斐波那契數(shù)列 。該數(shù)列由 0 和 1 開(kāi)始,后面的每一項(xiàng)數(shù)字都是前面兩項(xiàng)數(shù)字的和。也就是: 給定 n ,請(qǐng)計(jì)算 F(n) 。 示例 1: 示例 2: 示例 3: 提示: 0 = n = 30 思路:動(dòng)規(guī)五步 確定dp數(shù)組和數(shù)組下標(biāo)含義 DP題目都需要定義一維

    2024年02月13日
    瀏覽(25)
  • (動(dòng)態(tài)規(guī)劃) 劍指 Offer 10- I. 斐波那契數(shù)列 ——【Leetcode每日一題】

    (動(dòng)態(tài)規(guī)劃) 劍指 Offer 10- I. 斐波那契數(shù)列 ——【Leetcode每日一題】

    難度:簡(jiǎn)單 寫一個(gè)函數(shù),輸入 n ,求斐波那契(Fibonacci)數(shù)列的第 n 項(xiàng)(即 F(N) )。斐波那契數(shù)列的定義如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N 1. 斐波那契數(shù)列由 0 和 1 開(kāi)始,之后的斐波那契數(shù)就是由之前的兩數(shù)相加而得出。 答案需要取模 1e9+7(1000000007),如計(jì)

    2024年02月12日
    瀏覽(20)
  • LeetCode刷題筆記【29】:動(dòng)態(tài)規(guī)劃專題-1(斐波那契數(shù)、爬樓梯、使用最小花費(fèi)爬樓梯)

    LeetCode刷題筆記【29】:動(dòng)態(tài)規(guī)劃專題-1(斐波那契數(shù)、爬樓梯、使用最小花費(fèi)爬樓梯)

    動(dòng)態(tài)規(guī)劃(DP,Dynamic Programming)。 其解題思路對(duì)比 貪心算法的“直接選局部最優(yōu)然后推導(dǎo)出全局最優(yōu)” ;傾向于“ 由之前的結(jié)果推導(dǎo)得到后續(xù)的結(jié)果 ”。 很多時(shí)候二者具有相似性,不必死扣概念。 動(dòng)態(tài)規(guī)劃題目的核心是dp數(shù)組的概念和構(gòu)建(遞推公式); 所以具體的解題步驟

    2024年02月09日
    瀏覽(47)
  • 動(dòng)態(tài)規(guī)劃專訓(xùn)1——泰波那契數(shù)列模型

    動(dòng)態(tài)規(guī)劃的思想:將一個(gè)問(wèn)題分隔為若干個(gè)子問(wèn)題,完成子問(wèn)題得到結(jié)構(gòu)再得到最終的答案 動(dòng)態(tài)規(guī)劃往往解題步驟固定,分為以下幾步 1.找出狀態(tài)表示 2.完成狀態(tài)轉(zhuǎn)移方程 3.初始化 4.填表順序 5.返回值 后面三步偏重細(xì)節(jié),二解題的核心就在于前兩步,所以要想練好動(dòng)態(tài)規(guī)劃

    2024年04月29日
    瀏覽(18)
  • 藍(lán)橋杯專題-試題版-【地宮取寶】【斐波那契】【波動(dòng)數(shù)列】【小朋友排隊(duì)】

    藍(lán)橋杯專題-試題版-【地宮取寶】【斐波那契】【波動(dòng)數(shù)列】【小朋友排隊(duì)】

    點(diǎn)擊跳轉(zhuǎn)專欄=Unity3D特效百例 點(diǎn)擊跳轉(zhuǎn)專欄=案例項(xiàng)目實(shí)戰(zhàn)源碼 點(diǎn)擊跳轉(zhuǎn)專欄=游戲腳本-輔助自動(dòng)化 點(diǎn)擊跳轉(zhuǎn)專欄=Android控件全解手冊(cè) 點(diǎn)擊跳轉(zhuǎn)專欄=Scratch編程案例 點(diǎn)擊跳轉(zhuǎn)=軟考全系列 點(diǎn)擊跳轉(zhuǎn)=藍(lán)橋系列 專注于 Android/Unity 和各種游戲開(kāi)發(fā)技巧,以及 各種資源分享 (網(wǎng)站、

    2024年02月11日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包