leetcode-213-打家劫舍二

题目描述:

方法一:

class Solution(object):
    def rob(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        def dp(nums):
            pre = 0
            cur = 0
            for i in nums:
                temp = cur
                cur = max(pre+i,cur)
                pre = temp
            return cur
        if not nums:
            return 0
        if len(nums)<3:
            return max(nums)
        nums1 = nums[1:]
        nums2 = nums[:-1]
        return max(dp(nums1),dp(nums2))

 

posted @ 2019-07-20 19:32  oldby  阅读(163)  评论(0编辑  收藏  举报