// 0表示 沒有偷,1表示偷了
//貪心策略: 可以偷一定偷
// f[i] = f[i-1]+value[i]
public
introb
(int
nums)
return math.
max(dp[dp.length-1]
[0],dp[dp.length-1]
[1]);}}
壓縮一下空間
class
solution
= max(f[i-1],f[i-1]+ value[i])
// 0表示 沒有偷,1表示偷了
//貪心策略: 可以偷一定偷
// f[i] = f[i-1]+value[i]
public
introb
(int
nums)
return dp[i-1]
;}}class
solution
= max(f[i-1],f[i-1]+ value[i])
// 0表示 沒有偷,1表示偷了
//貪心策略: 可以偷一定偷
// f[i] = f[i-1]+value[i]
public
introb
(int
nums)
return dp[i-1];}}
所以可以有兩種 dp方程dp[i] = max(dp[i-1],dp[i-1]+value[i])
或者dp[i]=max(dp[i-2]+value[i],dp[i-1])
LeetCode 198 打家劫舍
題目 你是乙個專業的強盜,計畫搶劫沿街的房屋。每間房都藏有一定的現金,阻止你搶劫他們的唯一的制約因素就是相鄰的房屋有保安系統連線,如果兩間相鄰的房屋在同一晚上被闖入,它會自動聯絡 給定乙個代表每個房屋的金額的非負整數列表,確定你可以在沒有提醒 的情況下搶劫的最高金額。思路 本題的大致意思就是求取乙個...
LeetCode198 打家劫舍
你是乙個專業的強盜,計畫搶劫沿街的房屋。每間房都藏有一定的現金,阻止你搶劫他們的唯一的制約因素就是相鄰的房屋有保安系統連線,如果兩間相鄰的房屋在同一晚上被闖入,它會自動聯絡 給定乙個代表每個房屋的金額的非負整數列表,確定你可以在沒有提醒 的情況下搶劫的最高金額。簡單的動態規劃問題,題目意思是計算陣列...
LeetCode198 打家劫舍
你是乙個專業的小偷,計畫偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。給定乙個代表每個房屋存放金額的非負整數陣列,計算你在不觸動警報裝置的情況下,能夠偷竊到的最高金額。示例 1 輸入 1...