Python3实现打家劫舍问题

原题 https://leetcode-cn.com/problems/house-robber/

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

示例 1:

输入: [1,2,3,1]
输出: 4
解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。

示例 2:

输入: [2,7,9,3,1]
输出: 12
解释: 偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。偷窃到的最高金额 = 2 + 9 + 1 = 12 。

解题:

class Solution:def rob(self, nums: List[int]) -> int:n = len(nums)if n == 0:return 0if n == 1:return nums[0]if n == 2:return max(nums[0], nums[1])e0 = 0e1 = nums[0]e2 = max(nums[0], nums[1]) #动态规划思路,但是只需要3个中间值for i in range(3, n + 1):e0, e1, e2 = e1, e2, max(nums[i-1] + e1, nums[i-2] + e0)return e2

Python3实现打家劫舍问题相关推荐

  1. pip 无法卸载 pillow 解决方案 Not uninstalling pillow at /usr/lib/python3/dist-packages

    1. 问题现象 使用 pip 卸载 pillow 时无法卸载,报如下错误: $ sudo pip3 uninstall pillow Not uninstalling pillow at /usr/l ...

  2. Python2 与 Python3 区别

    Python2.x 与 Python3.x 区别 1. print 函数 Python2 中 print 是语句(statement),Python3 中 print 则变成了函数.在 Python3 ...

  3. Anaconda3+python3.7.10+TensorFlow2.3.0+PyQt5环境搭建

    Anaconda3+python3.7.10+TensorFlow2.3.0+PyQt5环境搭建 一.Anaconda 创建 python3.7环境 1.进入 C:\Users\用户名 目录下,找到 ...

  4. python2转python3文件

    python37 -m 2to3.py -w C:\Users\Administrator\Desktop\搜狗细胞词库处理.py 命令 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA ...

  5. Python3:ImportError: No module named 'compiler.ast'

    from compiler.ast import flatten 上面这条语句好像在python3 以后就废除了,如果使用的话就会报错. Traceback (most recent call las ...

  6. 安装win下的Anaconda ----针对python3.6.4版本

    我的python版本是3.6.4, Anaconda下载地址: Anaconda官网:https://repo.anaconda.com/archive/ 清华大学镜像站:https://mirror ...

  7. Python3 reversed 函数

    描述 reversed 函数返回一个反转的迭代器. 语法 以下是 reversed 的语法: reversed(seq)(seq) 参数 seq -- 要转换的序列,可以是 tuple, string ...

  8. Python3 try-except、raise和assert解析

    20220221 案例 def product(x):result = 1print(x)count = 0for i in x:try:result *= float(i)except Except ...

  9. Windows10+anaconda,python3.5, 安装glove-python

    Windows10+anaconda,python3.5, 安装glove-python 安装glove 安装之前 Visual C++ 2015 Build Tools 开始安装 安装glove 最 ...

最新文章

  1. 写代码可能是成为软件工程师最容易的部分
  2. 你还不会创建jQuery插件 ?
  3. BST(Binary Search Tree 二叉查找树模版)
  4. RUNOOB python练习题6 斐波那契数列
  5. 泡着枸杞写bug的三流程序员凭什么逆袭到一线大厂?
  6. 任务58:19-尚硅谷-Java语言基础-String类型变量的使用
  7. Atitit.单向sso  单点登录的设计与实现
  8. Redis异常JedisConnectionException:Read timed out解决笔记
  9. 阿里矢量图标库彩色图标(Symbol 引用)
  10. postgresql树形结构查询
  11. OutLook邮件中设计添加个性签名
  12. 静态HTML网页设计作品:旅游网站设计——开心旅游网(15页) HTML+CSS+JavaScript 主题度假酒店
  13. python连接S3
  14. FrameMaker从零到学习编码
  15. 实战:618/双11大促备战全流程点点滴滴
  16. API网关之Kong初识
  17. Python PyAutoGUI和Pywinauto区别及安装
  18. Java获取24小时之前的时间点
  19. 360手机刷机救砖:QGDP360手机全支持;360手机N5、N5S、N6、N6Lite、N6PRO、N7、N7Lite、N7PRO
  20. 修改注册表(设置首页)

热门文章

  1. javadoc maven_创建Maven源代码和Javadoc工件
  2. 6个您需要了解的日志管理工具(以及如何使用它们)
  3. maven使用testng_使用Maven Failsafe和TestNG分别运行单元测试和集成测试
  4. jaxb 命名空间_在JAXB解组期间应用名称空间
  5. Spring Integration完整示例
  6. 如何优化Hibernate EllementCollection语句
  7. Java Web App体系结构
  8. 具有Overlord的WildFly 8.1中的API管理
  9. 在Spring MVC应用程序中使用Bean Validation 1.1获得更好的错误消息
  10. 工厂设计模式–一种有效的方法