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

53 打家劫舍

這篇具有很好參考價(jià)值的文章主要介紹了53 打家劫舍。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


!經(jīng)典DP!
你是一個(gè)專(zhuān)業(yè)的小偷,計(jì)劃偷竊沿街的房屋。每間房?jī)?nèi)都藏有一定的現(xiàn)金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統(tǒng),如果 兩間相鄰的房屋在同一晚上被小偷闖入,系統(tǒng)會(huì)自動(dòng)報(bào)警。

給定一個(gè)代表每個(gè)房屋存放金額的非負(fù)整數(shù)數(shù)組,計(jì)算你不觸動(dòng)警報(bào)裝置的情況下 ,一夜之內(nèi)能夠偷竊到的最高金額。

示例 1:
輸入:[1,2,3,1]
輸出:4
解釋?zhuān)和蹈` 1 號(hào)房屋 (金額 = 1) ,然后偷竊 3 號(hào)房屋 (金額 = 3)。
偷竊到的最高金額 = 1 + 3 = 4 。

示例 2:
輸入:[2,7,9,3,1]
輸出:12
解釋?zhuān)和蹈` 1 號(hào)房屋 (金額 = 2), 偷竊 3 號(hào)房屋 (金額 = 9),接著偷竊 5 號(hào)房屋 (金額 = 1)。
偷竊到的最高金額 = 2 + 9 + 1 = 12 。

提示:

  • 1 <= nums.length <= 100
  • 0 <= nums[i] <= 400

動(dòng)態(tài)規(guī)劃的的四個(gè)解題步驟是:

  1. 定義子問(wèn)題: 總問(wèn)題:搶N個(gè)房子 – > 子問(wèn)題:搶 K個(gè)房子

  2. 寫(xiě)出子問(wèn)題的遞推關(guān)系:第k個(gè)房子要么被搶要么不被搶?zhuān)篎(k) = max(F(k-1), nums[k] + F(k-2))
    (只與前兩個(gè)房子的最大金額有關(guān)——空間優(yōu)化,N長(zhǎng)數(shù)組變成2個(gè)變量)53 打家劫舍,DP,HOT100,算法,數(shù)據(jù)結(jié)構(gòu),leetcode

  3. 確定 DP 數(shù)組的計(jì)算順序
    動(dòng)態(tài)規(guī)劃有兩種計(jì)算順序,一種是自頂向下的、使用備忘錄的遞歸方法,一種是自底向上的、使用 dp 數(shù)組的循環(huán)方法。不過(guò)在普通的動(dòng)態(tài)規(guī)劃題目中,99% 的情況我們都不需要用到備忘錄方法,所以我們最好堅(jiān)持用自底向上的 dp 數(shù)組
    DP 數(shù)組中的依賴關(guān)系都是向右指的,DP 數(shù)組的計(jì)算順序就是從左向右。這樣我們可以保證,計(jì)算一個(gè)子問(wèn)題的時(shí)候,它所依賴的那些子問(wèn)題已經(jīng)計(jì)算出來(lái)了。
    53 打家劫舍,DP,HOT100,算法,數(shù)據(jù)結(jié)構(gòu),leetcode

  4. 空間優(yōu)化(可選)

題解1 DP1

class Solution {
public:
    int rob(vector<int>& nums) {
        int s = nums.size();
        vector<int> dp(s+1, 0);
        dp[1] = nums[0];
        for(int i = 1; i < s; i++){
            dp[i+1] = max(dp[i], dp[i-1]+nums[i]);
        }
        return dp[s];
    }
};

53 打家劫舍,DP,HOT100,算法,數(shù)據(jù)結(jié)構(gòu),leetcode

題解2 DP2

class Solution {
public:
    int rob(vector<int>& nums) {
        int s = nums.size();
        if(1 == s) return nums[0];
        int first = nums[0];
        int sec = max(nums[0], nums[1]);
        for(int i = 2; i < s; i++){
            int tmp = sec;
            // sec是i-1的情況, first是i-2
            sec = max(first+nums[i], sec);
            first = tmp;
        }
        return sec;
    }
};

53 打家劫舍,DP,HOT100,算法,數(shù)據(jù)結(jié)構(gòu),leetcode文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-725323.html

到了這里,關(guān)于53 打家劫舍的文章就介紹完了。如果您還想了解更多內(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)文章

  • 動(dòng)態(tài)規(guī)劃-經(jīng)典dp(打家劫舍,股票等)

    動(dòng)態(tài)規(guī)劃-經(jīng)典dp(打家劫舍,股票等)

    1.1.1 爬樓梯 ?由于求的是組合數(shù),我們將不同路徑相加即可 dp定義: dp[i]為爬到第i階樓梯的方法數(shù); 轉(zhuǎn)移方程: 初始化: ?由于涉及到i-2和i-1,那么我們要從i=2開(kāi)始遍歷,因此要初始化dp[0] = 0,dp[1] = 1(根據(jù)定義) 遍歷順序: 從左往右? 完整代碼: ?1.1.2?使用最小花費(fèi)爬樓梯

    2024年01月19日
    瀏覽(26)
  • 動(dòng)態(tài)規(guī)劃day09(打家劫舍,樹(shù)形dp)

    動(dòng)態(tài)規(guī)劃day09(打家劫舍,樹(shù)形dp)

    目錄 198.打家劫舍 看到題目的第一想法 看到代碼隨想錄之后的想法 自己實(shí)現(xiàn)過(guò)程中遇到的困難 213.打家劫舍II 看到題目的第一想法 看到代碼隨想錄之后的想法 自己實(shí)現(xiàn)過(guò)程中遇到的困難 337.打家劫舍 III(樹(shù)形dp) 看到題目的第一想法 看到代碼隨想錄之后的想法 自己實(shí)現(xiàn)過(guò)程中

    2024年01月23日
    瀏覽(23)
  • 【動(dòng)態(tài)規(guī)劃】簡(jiǎn)單多狀態(tài)dp問(wèn)題(1)打家劫舍問(wèn)題

    【動(dòng)態(tài)規(guī)劃】簡(jiǎn)單多狀態(tài)dp問(wèn)題(1)打家劫舍問(wèn)題

    打家劫舍問(wèn)題 傳送門(mén):面試題 17.16. 按摩師 題目: 1.1 題目解析 越難的dp問(wèn)題,看示例只能起到了解題目的效果,一般推不出啥普遍的規(guī)律,所以接下來(lái)就是我們的算法原理,通過(guò)動(dòng)歸的思想去理解,才會(huì)豁然開(kāi)朗! 1.2 算法原理 1.2.1 狀態(tài)表示 我們需要通過(guò)經(jīng)驗(yàn) + 題目要求去

    2024年02月12日
    瀏覽(19)
  • 算法刷題Day 48 打家劫舍+打家劫舍II+打家劫舍III

    分成兩段來(lái)處理:比如說(shuō)輸入的長(zhǎng)度是n(0~n-1),就分成[0, n - 1)和[1, n)兩部分 寫(xiě)一個(gè)輔助函數(shù),返回兩個(gè)狀態(tài),搶或者不搶能得到的最大收獲。

    2024年02月16日
    瀏覽(50)
  • 【LeetCode熱題100】198. 打家劫舍(動(dòng)態(tài)規(guī)劃)

    你是一個(gè)專(zhuān)業(yè)的小偷,計(jì)劃偷竊沿街的房屋。每間房?jī)?nèi)都藏有一定的現(xiàn)金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統(tǒng), 如果兩間相鄰的房屋在同一晚上被小偷闖入,系統(tǒng)會(huì)自動(dòng)報(bào)警。 給定一個(gè)代表每個(gè)房屋存放金額的非負(fù)整數(shù)數(shù)組,計(jì)算你 不觸動(dòng)

    2024年04月11日
    瀏覽(27)
  • 算法訓(xùn)練第四十八天|198.打家劫舍、213.打家劫舍II、337.打家劫舍III

    算法訓(xùn)練第四十八天|198.打家劫舍、213.打家劫舍II、337.打家劫舍III

    題目鏈接:198.打家劫舍 參考:https://programmercarl.com/0198.%E6%89%93%E5%AE%B6%E5%8A%AB%E8%88%8D.html 你是一個(gè)專(zhuān)業(yè)的小偷,計(jì)劃偷竊沿街的房屋。每間房?jī)?nèi)都藏有一定的現(xiàn)金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統(tǒng),如果兩間相鄰的房屋在同一晚上被小偷闖入

    2023年04月16日
    瀏覽(19)
  • 【LeetCode動(dòng)態(tài)規(guī)劃#11】打家劫舍系列題(涉及環(huán)結(jié)構(gòu)和樹(shù)形DP的討論)

    力扣題目鏈接(opens new window) 你是一個(gè)專(zhuān)業(yè)的小偷,計(jì)劃偷竊沿街的房屋。每間房?jī)?nèi)都藏有一定的現(xiàn)金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統(tǒng),如果兩間相鄰的房屋在同一晚上被小偷闖入,系統(tǒng)會(huì)自動(dòng)報(bào)警。 給定一個(gè)代表每個(gè)房屋存放金額的非

    2023年04月21日
    瀏覽(26)
  • 【動(dòng)態(tài)規(guī)劃】12簡(jiǎn)單多狀態(tài)dp問(wèn)題_打家劫舍II_C++ (medium)

    【動(dòng)態(tài)規(guī)劃】12簡(jiǎn)單多狀態(tài)dp問(wèn)題_打家劫舍II_C++ (medium)

    題目鏈接:leetcode打家劫舍II 目錄 題目解析: 算法原理 1.狀態(tài)表示 2.狀態(tài)轉(zhuǎn)移方程 3.初始化 4.填表順序 5.返回值 編寫(xiě)代碼 題目讓我們求 在不觸動(dòng)警報(bào)裝置的情況下 ?,能夠偷竊到的最高金額。 由題可得: 第一個(gè)房屋和最后一個(gè)房屋是緊挨著的 如果兩間相鄰的房屋在同一晚

    2024年02月02日
    瀏覽(21)
  • 【算法|動(dòng)態(tài)規(guī)劃No.10】leetcode LCR 089. 打家劫舍 & LCR 090. 打家劫舍 II

    【算法|動(dòng)態(tài)規(guī)劃No.10】leetcode LCR 089. 打家劫舍 & LCR 090. 打家劫舍 II

    個(gè)人主頁(yè):兜里有顆棉花糖 歡迎 點(diǎn)贊?? 收藏? 留言? 加關(guān)注??本文由 兜里有顆棉花糖 原創(chuàng) 收錄于專(zhuān)欄【手撕算法系列專(zhuān)欄】【LeetCode】 ??本專(zhuān)欄旨在提高自己算法能力的同時(shí),記錄一下自己的學(xué)習(xí)過(guò)程,希望對(duì)大家有所幫助 ??希望我們一起努力、成長(zhǎng),共同進(jìn)步。

    2024年01月20日
    瀏覽(22)
  • 算法第十八天-打家劫舍Ⅱ

    算法第十八天-打家劫舍Ⅱ

    [打家劫舍Ⅱ]是說(shuō)兩個(gè)相鄰的房間不能同時(shí)偷,并且首尾兩個(gè)房間是相鄰的(不能同時(shí)偷首尾房間) 明顯是基于[打家劫舍Ⅰ]做的升級(jí)。[打家劫舍Ⅰ]也是說(shuō)兩個(gè)相鄰的房間不能同時(shí)偷,但是首尾房間不是相鄰的(可以同時(shí)偷首尾房間) 所以,我們先從[打家劫舍Ⅰ]開(kāi)始說(shuō)起。

    2024年01月17日
    瀏覽(23)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包