class Solution(object):
def rob(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
#index 0: does not steal from the first house
#index 1: steal from the first house
if not nums:return 0
res=[0,0]
#if steal from the first house, then can not steal from the last house
res[0]=nums[0]+self.helper(nums[1:-1])[1]
#if does not steal from the first house
res[1]=max(self.helper(nums[1:]))
return max(res)
def helper(self,nums):
if not nums:return [0,0]
curr=self.helper(nums[1:])
return [nums[0]+curr[1],max(curr)]
网友评论