其他分享
首页 > 其他分享> > leetcode——213. 打家劫舍 II

leetcode——213. 打家劫舍 II

作者:互联网

不偷第一家的最大利润p1

不偷最后一家的最大利润是p2

输出p1,p2的最大值

class Solution:
    def rob(self, nums) -> int:
        if len(nums)==0:
            return 0
        if len(nums)<2:
            return nums[0]
        if len(nums)==2:
            return max(nums)
        else:
            res={}
            res[0]=nums[0]
            res[1]=max(nums[:2])
            for i in range(2,len(nums)):
                res[i]=max(res[i-2]+nums[i],res[i-1])
            nums1=nums[1:]
            res1={}
            res1[0]=nums1[0]
            res1[1]=max(nums1[:2])
            for i in range(2,len(nums1)):
                res1[i]=max(res1[i-2]+nums1[i],res1[i-1])
        return max(res[len(nums)-2],res1[len(nums1)-1])
执行用时 :48 ms, 在所有 python3 提交中击败了74.29%的用户 内存消耗 :13.8 MB, 在所有 python3 提交中击败了5.39%的用户                                                                                               ——2019.10.16

标签:p2,p1,213,nums,len,II,不偷,leetcode,python3
来源: https://www.cnblogs.com/taoyuxin/p/11685440.html