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

力扣198. 打家劫舍(java 動(dòng)態(tài)規(guī)劃)

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

Problem: 198. 打家劫舍

題目描述

力扣198. 打家劫舍(java 動(dòng)態(tài)規(guī)劃),力扣題目,動(dòng)態(tài)規(guī)劃,leetcode,java力扣198. 打家劫舍(java 動(dòng)態(tài)規(guī)劃),力扣題目,動(dòng)態(tài)規(guī)劃,leetcode,java

思路

1.構(gòu)建多階段決策模型:n個(gè)房屋對(duì)應(yīng)n個(gè)階段,每一個(gè)階段決定一個(gè)房間是偷還是不偷,兩種決策:偷、不偷
2.定義狀態(tài):不能記錄每個(gè)階段決策完之后,小偷可偷的最大金額,需要記錄不同決策對(duì)應(yīng)的最大金額,也就是:這個(gè)房屋偷-對(duì)應(yīng)的最大金額;這個(gè)房屋不偷-對(duì)應(yīng)的最大金額。int[n][2]記錄每個(gè)階段的狀態(tài),dp[i][0]表示第i個(gè)物品不偷,當(dāng)下剩余的最大金額;dp[i][1]表示第i個(gè)物品偷,當(dāng)下剩余的最大金額;
3.定義狀態(tài)轉(zhuǎn)移方程:dp[i][0] = max(dp[i - 1][0], dp[i - 1][1])即表示假設(shè)不偷則當(dāng)前階段可以獲得的最大值為上一個(gè)房屋偷或者不偷的二者中的最大金額;dp[i][1] = dp[i - 1][0] + nums[i]即表示假設(shè)當(dāng)前階段偷則當(dāng)前可以獲得的最大金額為上一個(gè)房屋不偷加上當(dāng)前當(dāng)前房屋的金額

解題方法

1.獲取nums數(shù)組的長(zhǎng)度為n;并定義int類型數(shù)組dp:int[][] dp = new int[n][2];
2.初始化dp[0][0]為0,dp[0][1]為nums[0];
3.完成動(dòng)態(tài)轉(zhuǎn)移方程;
4.返回max(dp[n - 1][0], dp[n - 1][1])

復(fù)雜度

時(shí)間復(fù)雜度:

O ( n ) O(n) O(n);其中 n n n為數(shù)組nums的長(zhǎng)度

空間復(fù)雜度:

O ( n ) O(n) O(n)文章來源地址http://www.zghlxwxcb.cn/news/detail-809875.html

Code

class Solution {
    /**
     * Get the maximum amount
     *
     * @param nums Given array(Store the amount of each house)
     * @return int
     */
    public int rob(int[] nums) {
        if (nums.length == 0) {
            return 0;
        }
        int n = nums.length;
        int[][] dp = new int[n][2];
        //dp[i][0] represents the maximum amount
        // that can currently be obtained without stealing
        dp[0][0] = 0;
        //dp[i][1] represents the maximum amount
        // that can be obtained when not stealing
        dp[0][1] = nums[0];
        for (int i = 1; i < n; ++i) {
            dp[i][0] = Math.max(dp[i - 1][0], dp[i - 1][1]);
            dp[i][1] = dp[i - 1][0] + nums[i];
        }
        return Math.max(dp[n - 1][0], dp[n - 1][1]);
    }
}

到了這里,關(guān)于力扣198. 打家劫舍(java 動(dòng)態(tài)規(guī)劃)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(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)文章

  • 力扣 198.打家劫舍【中等】

    力扣 198.打家劫舍【中等】

    題目來源:力扣(LeetCode)https://leetcode.cn/problems/house-robber 題目:你是一個(gè)專業(yè)的小偷,計(jì)劃偷竊沿街的房屋。每間房?jī)?nèi)都藏有一定的現(xiàn)金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統(tǒng),如果兩間相鄰的房屋在同一晚上被小偷闖入,系統(tǒng)會(huì)自動(dòng)報(bào)警。

    2024年02月16日
    瀏覽(22)
  • 力扣爆刷第77天--動(dòng)態(tài)規(guī)劃一網(wǎng)打盡打家劫舍問題

    力扣爆刷第77天–動(dòng)態(tài)規(guī)劃一網(wǎng)打盡打家劫舍問題 一、198.打家劫舍 題目鏈接:https://leetcode.cn/problems/house-robber/ 思路:小偷不能連續(xù)兩家偷,由此可以定義dp[i]表示,小偷經(jīng)過[0,i]所能獲取到的最大金額,那么我們可以得到遞推公式: dp[i] = Math.max(dp[i-1], dp[i-2]+nums[i]); 即如果偷

    2024年02月22日
    瀏覽(26)
  • Java 動(dòng)態(tài)規(guī)劃 Leetcode 213. 打家劫舍 II

    Java 動(dòng)態(tài)規(guī)劃 Leetcode 213. 打家劫舍 II

    代碼展示: ????????該題其實(shí)是Java 動(dòng)態(tài)規(guī)劃 面試題 17.16. 按摩師的變種,增加了一個(gè)首尾是相鄰的條件,而我們解決該題也要用到鏈接的這道題的思想,可以先去看一下上面這篇博客 此題可以采用動(dòng)態(tài)規(guī)劃的方法進(jìn)行解決,根據(jù)解決動(dòng)態(tài)規(guī)劃題目的5大步驟進(jìn)行逐步分析

    2024年02月13日
    瀏覽(24)
  • 算法訓(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è)專業(yè)的小偷,計(jì)劃偷竊沿街的房屋。每間房?jī)?nèi)都藏有一定的現(xiàn)金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統(tǒng),如果兩間相鄰的房屋在同一晚上被小偷闖入

    2023年04月16日
    瀏覽(18)
  • _198打家劫舍

    _198打家劫舍 https://leetcode.cn/problems/house-robber/submissions/496496112/

    2024年01月18日
    瀏覽(21)
  • 198. 打家劫舍

    198. 打家劫舍

    198. 打家劫舍 https://leetcode.cn/problems/house-robber/description/

    2024年01月20日
    瀏覽(47)
  • LC198. 打家劫舍

    ?代碼隨想錄

    2024年01月21日
    瀏覽(32)
  • LeetCode - 198 打家劫舍

    LeetCode - 198 打家劫舍

    目錄 題目來源 題目描述 示例 提示 題目解析 算法源碼 題目來源 198. 打家劫舍 - 力扣(LeetCode) 題目描述 你是一個(gè)專業(yè)的小偷,計(jì)劃偷竊沿街的房屋。每間房?jī)?nèi)都藏有一定的現(xiàn)金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統(tǒng),如果兩間相鄰的房屋在

    2023年04月08日
    瀏覽(19)
  • LeetCode198.打家劫舍

    你是一個(gè)專業(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年03月12日
    瀏覽(23)
  • 動(dòng)態(tài)規(guī)劃_打家劫舍(Ⅰ~Ⅲ)

    打家劫舍系列 返回最大金額 不能同時(shí)取相鄰兩個(gè)數(shù) 數(shù)組數(shù)據(jù)全部非負(fù) ①dp數(shù)組含義 dp[i]表示前i個(gè)數(shù)中按規(guī)則取出的最大總和 ②遞推公式 dp[i]=max(dp[i-1],dp[i-2]+nums[i]) 當(dāng)前最優(yōu)可以從兩個(gè)狀態(tài)推出(前提是前面已經(jīng)為最優(yōu)解): 1° 前一個(gè)數(shù)未?。簞t當(dāng)前數(shù)取了,則總和最大

    2024年02月03日
    瀏覽(23)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包