- class Solution:
- def rob(self, nums):
- """
- :type nums: List[int]
- :rtype: int
- """
- if len(nums)==0:
- return 0
- if len(nums)==1:
- return nums[0]
- return max( self.robp(nums,0,len(nums)-2), self.robp(nums,1,len(nums)-1) )
- def robp(self,nums,lo,hi):
- premax, maxval = 0,0
- for i, val in enumerate(nums):
- if i<lo or i>hi:
- continue
- tmp = maxval
- maxval = val + premax
- premax = max(premax,tmp)
- return max(premax,maxval)
来源: https://mp.weixin.qq.com/s?__biz=MzI3NTkyMjA4NA==&mid=2247485190&idx=1&sn=5234906c2171b3f626d37fe70d988154&chksm=eb7c2acddc0ba3db4a9e8454ed5ef45956e05ae388a3e14c737deb0b69ddaea898bb390d0324#rd