免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

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

小編給大家分享一下如何解決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中打家劫舍的問題”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創新互聯行業資訊頻道!

網頁名稱:如何解決leetcode中打家劫舍的問題
網址分享:http://newbst.com/article6/jheoig.html

成都網站建設公司_創新互聯,為您提供外貿建站品牌網站設計網站策劃全網營銷推廣網站設計公司商城網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

h5響應式網站建設