MCPcopy
hub / github.com/HuberTRoy/leetCode / rob

Method rob

DP/HouseRobberII.py:45–75  ·  view source on GitHub ↗

:type nums: List[int] :rtype: int

(self, nums)

Source from the content-addressed store, hash-verified

43"""
44class Solution(object):
45 def rob(self, nums):
46 """
47 :type nums: List[int]
48 :rtype: int
49 """
50 if not nums:
51 return 0
52
53 if len(nums) <= 3:
54 return max(nums)
55
56 if len(nums) <= 4:
57 return max(max(nums), nums[1]+nums[-1], nums[2]+nums[0])
58
59 robber = [nums[0], nums[1], nums[2]+nums[0]]
60
61 for i in range(3, len(nums)-1):
62 robber.append(max(nums[i] + robber[i-2], nums[i] + robber[i-3]))
63
64 maxes = max(robber)
65
66 nums = [nums[-1]] + nums
67 nums.pop()
68
69 robber = [nums[0], nums[1], nums[2]+nums[0]]
70
71 for i in range(3, len(nums)-1):
72 robber.append(max(nums[i] + robber[i-2], nums[i] + robber[i-3]))
73
74
75 return max(robber+[maxes])

Callers

nothing calls this directly

Calls 1

popMethod · 0.45

Tested by

no test coverage detected