在一條直線上,有n個房屋,每個房屋中有數量不等的財寶,有乙個盜賊希望從房屋中盜取財寶,由於房屋中有報警器,如果同時從相鄰的兩個房屋中盜取財寶就會觸發報警器。問在不處罰報警器的前提下,最多可獲取多少財寶?
#include
#include
class
solution
~solution()
introb
(std::vector<
int>
& nums)
if(nums.
size()
==1) std::vector<
int>
dp(nums.
size()
,0);
dp[0]
= nums[0]
; dp[1]
= std::
max(nums[0]
, nums[1]
);for(
int i =
2; i < nums.
size()
; i++
)return dp[nums.
size()
-1];
}};int
main()
計算結果為:
18
動態規劃 打家劫舍
你是乙個專業的小偷,計畫偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。給定乙個代表每個房屋存放金額的非負整數陣列,計算你在不觸動警報裝置的情況下,能夠偷竊到的最高金額。示例 1 輸入 1...
打家劫舍 動態規劃
你是乙個專業的小偷,計畫偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。給定乙個代表每個房屋存放金額的非負整數陣列,計算你在不觸動警報裝置的情況下,能夠偷竊到的最高金額。示例 1 輸入 1...
打家劫舍(動態規劃)
打家劫舍 你是乙個專業的小偷,計畫偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。給定乙個代表每個房屋存放金額的非負整數陣列,計算你在不觸動警報裝置的情況下,能夠偷竊到的最高金額。考慮所有...