198.打家劫舍
题目表述:
你是一个专业的强盗,计划抢劫沿街的房屋。每间房都藏有一定的现金,阻止你抢劫他们的唯一的制约因素就是相邻的房屋有保安系统连接,如果两间相邻的房屋在同一晚上被闯入,它会自动联系警方。
给定一个代表每个房屋的金额的非负整数列表,确定你可以在没有提醒警方的情况下抢劫的最高金额。
PYTHON:

class Solution(object):def rob(self, nums):""":type nums: List[int]:rtype: int"""n = len(nums)ll = [0 for i in range(n)]     if n == 0:return 0if n == 1:return nums[0]if n == 2:return max(nums)else:ll[0] = nums[0]ll[1] = max(nums[0],nums[1])for i in range(2,len(nums)):ll[i] = max(ll[i-2] + nums[i],ll[i-1])return ll[n-1]

  1. 打家劫舍 II
    题目描述:
    在上次盗窃完一条街道之后,窃贼又转到了一个新的地方,这样他就不会引起太多注意。这一次,这个地方的所有房屋都围成一圈。这意味着第一个房子是最后一个是紧挨着的。同时,这些房屋的安全系统与上次那条街道的安全系统保持一致。
    给出一份代表每个房屋存放钱数的非负整数列表,确定你可以在不触动警报的情况下盗取的最高金额。
    PYTHON:
class Solution(object):def rob(self, nums):""":type nums: List[int]:rtype: int"""n = len(nums)out1 = [0 for x in range(n)]out2 = [0 for x in range(n)]if n == 0:return 0if n == 1 :return nums[0]if n == 2 :return max(nums[0],nums[1])      else:out1[0] = nums[0]           out2[1] = nums[1]           out1[1] = max(nums[0],nums[1])           out2[2] = max(nums[1],nums[2]) for i in range(2,n-1):out1[i] = max(out1[i-2] + nums[i],out1[i-1])                out2[i+1] = max(out2[i-1] + nums[i+1],out2[i])                     return max(out1[n-2],out2[n-1])

思路:因为房子是环形的,所以不能在打劫了第一座房子之后还打劫第二座房子,所以说分两种情况分别计算:1,不打劫第一座房子;2,不打劫最后一座房子,取最大即可。

【Leetcode】打家劫舍 I and 打家劫舍 II(动态规划)PYTHON相关推荐

  1. LeetCode:63. 不同路径 II(python、c++)

    题目描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为"Start" ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在下图中标记为& ...

  2. 每日一道算法题--leetcode 509--斐波那契数(动态规划)--python

    [题目描述] [代码思路] 自底向上的动态规划,避免了采用递归浪费空间以及重复计算. [源代码] class Solution(object):def fib(self, N):"" ...

  3. leetcode动态规划(python与c++)

    1 . 斐波那契数 class Solution:def fib(self, n: int) -> int:# if n==0:# return 0# elif n==1:# return 1# ...

  4. LeetCode 552. 学生出勤记录 II(动态规划)

    文章目录 1. 题目 2. 解题 1. 题目 给定一个正整数 n,返回长度为 n 的所有可被视为可奖励的出勤记录的数量. 答案可能非常大,你只需返回结果mod 10^9 + 7的值. 学生出勤记录是只 ...

  5. LeetCode部分习题解答记录-动态规划

    LeetCode部分习题解答记录-动态规划 动态规划 120.三角形最小路径和 方法:递归+记忆化 方法2:DP 64.最小路径和 方法1:递归 方法2:DP 从终点到起点,逐步更新 从起点到终点,逐 ...

  6. leetcode每日一题·买卖股票问题(Python)

    leetcode每日一题·买卖股票问题(Python) 买卖股票的最佳时机(股票最大利润) 题目链接 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的 ...

  7. LeetCode实战:环形链表 II

    背景 为什么你要加入一个技术团队? 如何加入 LSGO 软件技术团队? 我是如何组织"算法刻意练习活动"的? 为什么要求团队的学生们写技术Blog 题目英文 Given a lin ...

  8. LeetCode 935. 骑士拨号器(动态规划)

    文章目录 1. 题目 2. 解题 1. 题目 国际象棋中的骑士可以按下图所示进行移动: 这一次,我们将 "骑士" 放在电话拨号盘的任意数字键(如上图所示)上, 接下来,骑士将会跳 ...

  9. LeetCode——552. 学生出勤记录 II(Student Attendance Record II)[困难]——分析及代码(Java)

    LeetCode--552. 学生出勤记录 II[Student Attendance Record II][困难]--分析及代码[Java] 一.题目 二.分析及代码 1. 动态规划 (1)思路 ( ...

  10. LeetCode刷题——哈希表(python语言)

    LeetCode刷题--哈希表(python语言) 一.哈希表 1.1 哈希表的概念 哈希表,也叫散列表.其实可以很像python的字典,也就是键(key)值(Hash(key))对,最简单也最常用的 ...

最新文章

  1. ndbcluster 批量修改表空间_Excel小技巧:使用这招快速保护你的工作表
  2. C++调用openssl使用sha256,并取结果前64位作为uint64
  3. 万字总结,体系化带你全面认识 Nginx
  4. 送你8个Python高效数据分析的技巧(附代码)
  5. 数字双胞胎技术和物联网如何帮助企业取得成功
  6. Python3并发检验代理池地址
  7. OpenCV Tracker简介
  8. Python标准库之csv(1)
  9. java工程引入scala_引入ReactiveInflux:用于Scala和Java的无阻塞InfluxDB驱动程序,支持Apache Spark...
  10. 使用xshell上传本地文件到服务器
  11. 2个程序员街头卖唱,挽救了自己的秃头
  12. 爬取《全职高手之巅峰荣耀》的豆瓣影评,分析漫改电影的优劣好坏
  13. “大数据”、“机器学习”、“深度学习”到底是什么?
  14. springboot文件上传 Required request part 'file' is not present
  15. 【笔记】Oracle触发器,根据另外一张表是否存在此记录,来判断是否更新
  16. 初学larval 第二篇(大神绕道哦,针对新手友好的一篇)
  17. 1.23 定语从句 感叹句
  18. 你投的简历提示不合适,建议参考STAR法则
  19. html5鼠标移过切换图片,鼠标移动到图片上切换到另一张图片,移出时又切默认图片...
  20. Flaash大气纠正 ENVI

热门文章

  1. linux中vim中文显示乱码
  2. Hibernate简易BaseDao演示单例
  3. ubuntu开机自动关闭独显,使用集成显卡
  4. php gd实现简单图片验证码与图片背景文字水印
  5. http://www.jb51.net/article/51934.htm
  6. 再次思考 classpath 环境变量 等
  7. jquery 之for 循环
  8. 你一直在用的Beam Search,是否真的有效?
  9. 【分享】电子科大第一位以第一作者在CVPR上发文的本科生,这个小哥哥用奋斗诠释优秀!...
  10. 哈希革新Transformer:这篇ICLR高分论文让一块GPU处理64K长度序列