好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

查看更多关于leetcode——213. 打家劫舍 II的详细内容...

  阅读:13次

上一篇: Python3基础-函数作用域

下一篇:安装canvas