zoukankan      html  css  js  c++  java
  • Leetcode练习(Python):动态规划类:第198题:打家劫舍:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。

    题目:

    打家劫舍:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。  给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。  

    思路:

    使用动态规划的框架。

    程序:

    class Solution:
        def rob(self, nums: List[int]) -> int:
            if not nums:
                return 0
            length = len(nums)
            if length == 1:
                return nums[0]
            if length == 2:
                return max(nums[0], nums[1])
            auxiliary = [-1] * (length + 1)
            auxiliary[0] = 0
            auxiliary[1] = nums[0]
            for index in range(1, length):
                auxiliary[index + 1] = max(auxiliary[index], auxiliary[index - 1] + nums[index])
            return auxiliary[-1]
    

      

  • 相关阅读:
    re模块---正则表达式
    configparser 配置文件模块
    svn服务器配置
    python中的list的方法
    python正则表达式
    os模块
    高阶函数
    递归
    推导式
    [转]Java中的多线程你只要看这一篇就够了
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12876342.html
Copyright © 2011-2022 走看看