91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解決leetcode中打家劫舍的問題

發布時間:2022-01-17 12:00:20 來源:億速云 閱讀:147 作者:小新 欄目:大數據

小編給大家分享一下如何解決leetcode中打家劫舍的問題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!


題目鏈接

https://leetcode-cn.com/problems/house-robber/

 

題目描述

你是一個專業的小偷,計劃偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。

給定一個代表每個房屋存放金額的非負整數數組,計算你在不觸動警報裝置的情況下,能夠偷竊到的最高金額。

示例 1:

輸入: [1,2,3,1]
輸出: 4
解釋: 偷竊 1 號房屋 (金額 = 1) ,然后偷竊 3 號房屋 (金額 = 3)。
     偷竊到的最高金額 = 1 + 3 = 4 。
 

示例 2:

輸入: [2,7,9,3,1]
輸出: 12
解釋: 偷竊 1 號房屋 (金額 = 2), 偷竊 3 號房屋 (金額 = 9),接著偷竊 5 號房屋 (金額 = 1)。
     偷竊到的最高金額 = 2 + 9 + 1 = 12 。
   

解題方案

 

思路

  • 標簽:動態規劃

  • 動態規劃方程:dp[n] = MAX( dp[n-1], dp[n-2] + num )

  • 由于不可以在相鄰的房屋闖入,所以在當前位置n房屋可盜竊的最大值,要么就是n-1房屋可盜竊的最大值,要么就是n-2房屋可盜竊的最大值加上當前房屋的值,二者之間取最大值

  • 舉例來說:1號房間可盜竊最大值為3即為dp[1]=3,2號房間可盜竊最大值為4即為dp[2]=4,3號房間自身的值為2即為num=2,那么dp[3] = MAX( dp[2], dp[1] + num ) = MAX(4, 3+2) = 5,3號房間可盜竊最大值為5

  • 時間復雜度:O(n),n為數組長度

 

代碼

  • Java版本

class Solution {
   public int rob(int[] nums) {
       int len = nums.length;
       if(len == 0)
           return 0;
       int[] dp = new int[len + 1];
       dp[0] = 0;
       dp[1] = nums[0];
       for(int i = 2; i <= len; i++) {
           dp[i] = Math.max(dp[i-1], dp[i-2] + nums[i-1]);
       }
       return dp[len];
   }
}
 
  • JavaScript版本

/**
* @param {number[]} nums
* @return {number}
*/
var rob = function(nums) {
   const len = nums.length;
   if(len == 0)
       return 0;
   const dp = new Array(len + 1);
   dp[0] = 0;
   dp[1] = nums[0];
   for(let i = 2; i <= len; i++) {
       dp[i] = Math.max(dp[i-1], dp[i-2] + nums[i-1]);
   }
   return dp[len];
};
   

畫解

如何解決leetcode中打家劫舍的問題

如何解決leetcode中打家劫舍的問題

如何解決leetcode中打家劫舍的問題

如何解決leetcode中打家劫舍的問題

以上是“如何解決leetcode中打家劫舍的問題”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

克拉玛依市| 保定市| 谷城县| 望都县| 平阴县| 酉阳| 永和县| 信丰县| 平安县| 库尔勒市| 玛沁县| 宝兴县| 咸阳市| 成武县| 新蔡县| 二连浩特市| 福鼎市| 高雄市| 黄大仙区| 高邮市| 涿州市| 双柏县| 上饶县| 仁怀市| 北川| 云龙县| 津南区| 东明县| 龙陵县| 安吉县| 湖北省| 新兴县| 平塘县| 焦作市| 红原县| 台南县| 吴忠市| 堆龙德庆县| 伊宁县| 武威市| 义乌市|