Skip to content

Commit 3357d5d

Browse files
committedNov 29, 2020
feat: house-robber
1 parent e07a863 commit 3357d5d

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed
 

Diff for: ‎dp.house-robber.py

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
from typing import List
2+
3+
4+
class Solution:
5+
"""
6+
198. 打家劫舍
7+
https://leetcode-cn.com/problems/house-robber
8+
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。
9+
给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。
10+
"""
11+
def rob(self, nums: List[int]) -> int:
12+
if not nums:
13+
return 0
14+
15+
l = len(nums)
16+
17+
if l == 1:
18+
return nums[0]
19+
20+
dp = [0] * l
21+
dp[0] = nums[0]
22+
dp[1] = nums[1] if nums[1] > nums[0] else nums[0]
23+
if l <= 2:
24+
return dp[l - 1]
25+
26+
for i in range(2, l):
27+
dp[i] = max(dp[i - 1], dp[i - 2] + nums[i])
28+
29+
return dp[-1]
30+
31+
so = Solution()
32+
# 12
33+
print(so.rob([2, 7, 9, 3, 1]))

0 commit comments

Comments
 (0)
Please sign in to comment.