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

day 45:爬樓梯進(jìn)階版;322. 零錢兌換;279. 完全平方數(shù)

這篇具有很好參考價(jià)值的文章主要介紹了day 45:爬樓梯進(jìn)階版;322. 零錢兌換;279. 完全平方數(shù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

爬樓梯進(jìn)階版

假設(shè)你正在爬樓梯。需要 n 階你才能到達(dá)樓頂。

每次你可以爬 一步一個(gè)臺(tái)階,兩個(gè)臺(tái)階,三個(gè)臺(tái)階,…,直到 m個(gè)臺(tái)階。問(wèn)有多少種不同的方法可以爬到樓頂呢?

1. dp數(shù)組以及下標(biāo)名義

dp[j]:爬到j(luò)層一共有多少種方法。

2. 遞歸公式

遞推公式:dp[j] += dp[j - i];

3. dp數(shù)組如何初始化

dp[0] = 1;

4. 遍歷順序:顛倒兩個(gè)for循環(huán)順序,先遍歷背包再遍歷物品

5. 代碼

class Solution {
public:
    int climbStairs(int n) {
        vector<int> dp(n + 1, 0);
        dp[0] = 1;
        for (int i = 1; i <= n; i++) { // 遍歷背包
            for (int j = 1; j <= m; j++) { // 遍歷物品
                if (i - j >= 0) dp[i] += dp[i - j];
            }
        }
        return dp[n];
    }
};

322. 零錢兌換:硬幣可以重復(fù)選取

day 45:爬樓梯進(jìn)階版;322. 零錢兌換;279. 完全平方數(shù)

1. dp數(shù)組以及下標(biāo)名義

dp[i]:目標(biāo)整數(shù)為i的背包所能湊的最少硬幣個(gè)數(shù)。

2. 遞歸公式

coin[0] = 1時(shí),dp[1]=1.dp[2] = 2;…dp[11]=11;
coin[1] = 2時(shí),dp[1]=1;dp[2]=1;dp[3]=2;dp[4]=2;dp[5]=3;dp[6]=3;dp[7]=4;dp[8]=4
coin[2] = 5時(shí),dp[1]=1;dp[2]=1;dp[3]=2;dp[4]=2;dp[5]=1;dp[6] =2
dp[i] = min(dp[i], dp[i - coins[j]] + 1);

3. dp數(shù)組如何初始化

dp[0] = 0;目標(biāo)和為0 所以是0個(gè)硬幣

4. 遍歷順序:組合與排列都可以,因?yàn)椴挥绊懕绢}求解

5. 代碼

class Solution {
public://完全背包問(wèn)題
    int coinChange(vector<int>& coins, int amount) {
      vector<int>dp(amount + 1, INT_MAX); 
      dp[0] = 0;
        for(int j = 0; j < coins.size(); j++) {//遍歷物品
              for(int i = coins[j]; i <= amount; i++) {//遍歷背包
              if(dp[i - coins[j]] != INT_MAX) {// 如果dp[j - coins[i]]是初始值則跳過(guò)
                   dp[i] = min(dp[i], dp[i - coins[j]] + 1);
              }
          }
      }
      if(dp[amount] == INT_MAX) return -1;
      return dp[amount];
    }
};


和之前一樣的寫法,用 if(i - coins[j] >= 0) ,但是vector里面要用double,因?yàn)槌跏蓟癁檎偷淖畲笾盗?class Solution {
public://完全背包問(wèn)題
    int coinChange(vector<int>& coins, int amount) {
      vector<double>dp(amount + 1, INT_MAX); 
      dp[0] = 0;
        for(int j = 0; j < coins.size(); j++) {//遍歷物品
             cout<<"coin "<< j<<" :";
              for(int i = coins[j]; i <= amount ; i++) {//遍歷背包
              //if(dp[i - coins[j]] != INT_MAX) {// 如果dp[j - coins[i]]是初始值則跳過(guò)
                   if(i - coins[j] >= 0) {
                   dp[i] = min(dp[i], dp[i - coins[j]] + 1);
                 //  cout<<i<<":"<<dp[i]<<" ";
              }
              //cout<<endl;
          }

      }
      if(dp[amount] == INT_MAX) return -1;
      return dp[amount];
    }
};


279. 完全平方數(shù)

1. dp數(shù)組以及下標(biāo)名義

dp[j]:目標(biāo)為j的完全平方數(shù)最少的數(shù)量。

2. 遞歸公式

1時(shí),dp[1]=1.dp[2] = 2;…;
2時(shí),dp[1]=1;dp[2]=2;dp[3]=3;dp[4]=1;dp[5]=2;dp[6]=3;dp[7]=4;dp[8]=2
3時(shí),dp[1]=1;dp[2]=1;dp[3]=2;dp[4]=2;dp[5]=2;dp[6]=3;dp[7]=4;dp[8]=2;dp[9]=1;dp[10]=2
dp[i] = min(dp[i], dp[i - coins[j]] + 1);
遞推公式:dp[j] = min(dp[j],dp[j - i *i] +1);

3. dp數(shù)組如何初始化

dp[0] = 0;文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-470316.html

4. 遍歷順序:組合與排列都可以,因?yàn)椴挥绊懕绢}求解

5. 代碼

class Solution {
public:
    int numSquares(int n) {
        vector<double>dp(n + 1, INT_MAX);
        dp[0] = 0;
        for(int i = 0; i <= sqrt(n); i++) {
            for(int j = i * i; j <= n; j++) {
                if(j - i * i >= 0)
                dp[j] = min(dp[j], dp[j - i * i] + 1);
            }
        }
        return dp[n];

    }
};

到了這里,關(guān)于day 45:爬樓梯進(jìn)階版;322. 零錢兌換;279. 完全平方數(shù)的文章就介紹完了。如果您還想了解更多內(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)文章

  • 算法打卡day39|動(dòng)態(tài)規(guī)劃篇07| Leetcode 70. 爬樓梯(進(jìn)階版)、322. 零錢兌換、279.完全平方數(shù)

    算法打卡day39|動(dòng)態(tài)規(guī)劃篇07| Leetcode 70. 爬樓梯(進(jìn)階版)、322. 零錢兌換、279.完全平方數(shù)

    Leetcode 70. 爬樓梯(進(jìn)階版) 題目: 假設(shè)你正在爬樓梯。需要 n 階你才能到達(dá)樓頂。 每次你可以爬至多m (1 = m n)個(gè)臺(tái)階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個(gè)正整數(shù)。 輸入描述:輸入共一行,包含兩個(gè)正整數(shù),分別表示n, m 輸出描述:輸出一個(gè)整數(shù),

    2024年04月14日
    瀏覽(24)
  • 算法訓(xùn)練第四十五天|70. 爬樓梯 (進(jìn)階)、322. 零錢兌換、279.完全平方數(shù)

    算法訓(xùn)練第四十五天|70. 爬樓梯 (進(jìn)階)、322. 零錢兌換、279.完全平方數(shù)

    題目鏈接:70. 爬樓梯 (進(jìn)階) 參考:https://programmercarl.com/0070.%E7%88%AC%E6%A5%BC%E6%A2%AF%E5%AE%8C%E5%85%A8%E8%83%8C%E5%8C%85%E7%89%88%E6%9C%AC.html 假設(shè)你正在爬樓梯。需要 n 階你才能到達(dá)樓頂。 每次你可以爬 1 或 2 個(gè)臺(tái)階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個(gè)正整數(shù)

    2023年04月26日
    瀏覽(26)
  • 第42天-DP-第九章● 70. 爬樓梯 (進(jìn)階) ● 322. 零錢兌換 ● 279.完全平方數(shù)

    - LeetCode鏈接 假設(shè)你正在爬樓梯。需要 n 階你才能到達(dá)樓頂。 每次你可以爬 1 或 2 個(gè)臺(tái)階。你有多少種不同的方法可以爬到樓頂呢? - LeetCode鏈接 給你一個(gè)整數(shù)數(shù)組 coins ,表示不同面額的硬幣;以及一個(gè)整數(shù) amount ,表示總金額。 計(jì)算并返回可以湊成總金額所需的 最少的硬

    2024年02月01日
    瀏覽(32)
  • 【Day45】代碼隨想錄之動(dòng)態(tài)規(guī)劃part7—爬樓梯(進(jìn)階)、零錢兌換、完全平方數(shù)

    【Day45】代碼隨想錄之動(dòng)態(tài)規(guī)劃part7—爬樓梯(進(jìn)階)、零錢兌換、完全平方數(shù)

    今天又是補(bǔ)打卡的一天,開沖?。。?今日任務(wù): 70.爬樓梯(進(jìn)階) 322.零錢兌換 279.完全平方數(shù) 這道題之前做過(guò)一次,但是可以采用完全背包的問(wèn)題來(lái)分析一遍。 卡瑪網(wǎng)題目:【57.爬樓梯】 這個(gè)題目其實(shí)是更難了一點(diǎn),因?yàn)榍懊娴念}目都是每次要不爬1階樓梯,要不爬2階樓

    2024年03月25日
    瀏覽(32)
  • leetcode 動(dòng)態(tài)規(guī)劃(爬樓梯、零錢兌換、完全平方數(shù))

    leetcode 動(dòng)態(tài)規(guī)劃(爬樓梯、零錢兌換、完全平方數(shù))

    卡碼網(wǎng):57. 爬樓梯(opens new window) 假設(shè)你正在爬樓梯。需要 n 階你才能到達(dá)樓頂。 每次你可以爬至多m (1 = m n)個(gè)臺(tái)階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個(gè)正整數(shù)。 輸入描述:輸入共一行,包含兩個(gè)正整數(shù),分別表示n, m 輸出描述:輸出一個(gè)整數(shù),表

    2024年01月17日
    瀏覽(27)
  • 【十九】【動(dòng)態(tài)規(guī)劃】518. 零錢兌換 II、279. 完全平方數(shù)、474. 一和零,三道題目深度解析

    【十九】【動(dòng)態(tài)規(guī)劃】518. 零錢兌換 II、279. 完全平方數(shù)、474. 一和零,三道題目深度解析

    動(dòng)態(tài)規(guī)劃就像是解決問(wèn)題的一種策略,它可以幫助我們更高效地找到問(wèn)題的解決方案。這個(gè)策略的核心思想就是將問(wèn)題分解為一系列的小問(wèn)題,并將每個(gè)小問(wèn)題的解保存起來(lái)。這樣,當(dāng)我們需要解決原始問(wèn)題的時(shí)候,我們就可以直接利用已經(jīng)計(jì)算好的小問(wèn)題的解,而不需要重

    2024年02月03日
    瀏覽(25)
  • Day 44 | 動(dòng)態(tài)規(guī)劃 完全背包、518. 零錢兌換 II 、 377. 組合總和 Ⅳ

    Day 44 | 動(dòng)態(tài)規(guī)劃 完全背包、518. 零錢兌換 II 、 377. 組合總和 Ⅳ

    題目 文章講解 視頻講解 完全背包和0-1背包的區(qū)別在于:物品是否可以重復(fù)使用 思路:對(duì)于完全背包問(wèn)題,內(nèi)層循環(huán)的遍歷方式應(yīng)該是從weight[i]開始一直遍歷到V,而不是從V到weight[i]。這樣可以確保每種物品可以被選擇多次放入背包,從而求解完全背包問(wèn)題。 對(duì)于完全背包問(wèn)

    2024年02月20日
    瀏覽(27)
  • 【動(dòng)態(tài)規(guī)劃】322. 零錢兌換

    定義 要湊出金額n 至少要dp(coins,n)個(gè)硬幣 確定base case 目標(biāo)金額為0 返回0 確定 狀態(tài) 也就是原問(wèn)題和子問(wèn)題中的變量,你每次抽取一個(gè)硬幣,都會(huì)導(dǎo)致目標(biāo)金額減少,所以狀態(tài)就是目標(biāo)金額 確定選擇,也就是導(dǎo)致狀態(tài)產(chǎn)生變化的行為,每次選一個(gè)硬幣都會(huì)導(dǎo)致目標(biāo)金額的減少

    2024年02月10日
    瀏覽(21)
  • 力扣 | 322. 零錢兌換

    力扣 | 322. 零錢兌換

    這里使用動(dòng)態(tài)規(guī)劃,代碼簡(jiǎn)潔更易理解

    2024年01月21日
    瀏覽(24)
  • LC322. 零錢兌換

    ?代碼隨想錄

    2024年01月22日
    瀏覽(27)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包