leetcode打家劫社簡單實現 python

2021-10-08 06:55:40 字數 557 閱讀 4836

給定乙個陣列代表每家的金錢:

[1, 2, 0, 4, 6]

不可以搶劫相鄰兩家的金錢, 可以搶劫相隔的兩家, 求最大值

1+0+6 = 7

2+4 = 6

max = 7

思路:動態規劃, 遍歷陣列, 當i =2 時, 比較 dp[i-2] + dp[i] 和 dp[i-1], 選擇大的更新dp陣列

def robber(arr):

if len(arr) == 0:

return none

elif len(arr) == 1:

return arr[0]

else:

memo = arr

for i in range(2, len(arr)):

memo[i] = max(memo[i-2]+memo[i], memo[i-1])

return max(memo)

test = [1, 0, 2, 8, 4]

robber(test)

簡單 Leetcode 198 打家劫舍

題目 你是乙個專業的小偷,計畫偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。給定乙個代表每個房屋存放金額的非負整數陣列,計算你在不觸動警報裝置的情況下,能夠偷竊到的最高金額。示例解題思路...

LeetCode 198 打家劫舍

題目 你是乙個專業的強盜,計畫搶劫沿街的房屋。每間房都藏有一定的現金,阻止你搶劫他們的唯一的制約因素就是相鄰的房屋有保安系統連線,如果兩間相鄰的房屋在同一晚上被闖入,它會自動聯絡 給定乙個代表每個房屋的金額的非負整數列表,確定你可以在沒有提醒 的情況下搶劫的最高金額。思路 本題的大致意思就是求取乙個...

LeetCode198 打家劫舍

你是乙個專業的強盜,計畫搶劫沿街的房屋。每間房都藏有一定的現金,阻止你搶劫他們的唯一的制約因素就是相鄰的房屋有保安系統連線,如果兩間相鄰的房屋在同一晚上被闖入,它會自動聯絡 給定乙個代表每個房屋的金額的非負整數列表,確定你可以在沒有提醒 的情況下搶劫的最高金額。簡單的動態規劃問題,題目意思是計算陣列...