当前位置 : 主页 > 编程语言 > python >

leetcode——213. 打家劫舍 II

来源:互联网 收集:自由互联 发布时间:2021-06-25
不偷第一家的最大利润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 : r

不偷第一家的最大利润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
网友评论