LeetCode 213 House Robber II Python
题意:你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。
给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。
难度:medium
思路:该题在House Robber的基础上让首位链接形成环,那么即表示第一个和最后一个不能同时被抢,则问题分解为House Robber(nums[0:len(nums)-1])和House Robber(nums[1:len(nums)]),两者中比较大的那个即为结果
class Solution(object):def rob(self, nums):""":type nums: List[int]:rtype: int"""length = len(nums)if length == 0:return 0elif length == 1:return nums[0]elif length ==2:return max(nums[0], nums[1])return max(self.dfs(nums[1:]), self.dfs(nums[:-1]))def dfs(self, nums):if len(nums) == 2:return max(nums[0], nums[1])res = [0 for each in nums]res[0] = nums[0]res[1] = max(nums[0], nums[1])for index in xrange(2,len(nums)):res[index] = max(res[index -2] + nums[index], res[index - 1])return res[len(nums) - 1]
LeetCode 213 House Robber II Python相关推荐
- LeetCode 213. House Robber II(小偷游戏)
原题网址:https://leetcode.com/problems/house-robber-ii/ Note: This is an extension of House Robber. Afte ...
- [leetcode] 213. House Robber II 解题报告
题目链接:https://leetcode.com/problems/house-robber-ii/ Note: This is an extension of House Robber. Afte ...
- leetcode 213. House Robber II | 213. 打家劫舍 II(Java)
题目 https://leetcode.com/problems/house-robber-ii/ 题解 这道题是「198. 打家劫舍」的进阶,和第 198 题的不同之处是,这道题中的房屋是首尾相连的 ...
- LeetCode 142. 环形链表 II - Python 快慢指针法+详解
题目 142. 环形链表 II 难度中等761 给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的 ...
- 213. House Robber II
一.题目 1.审题 2.分析 一个连续的数组,你能获取不连续的元素值代表的财富,数组首尾的两个元素算作连续,求能获得的最大财富值. 二.解答 1.思路: 在 198. House Robber 的基础 ...
- Leetcode 534打劫房屋II python
描述 在上次打劫完一条街道之后,窃贼又发现了一个新的可以打劫的地方,但这次所有的房子围成了一个圈,这就意味着第一间房子和最后一间房子是挨着的.每个房子都存放着特定金额的钱.你面临的唯一约束条件是:相邻 ...
- 213. House Robber II 首尾相同的偷窃问题
[抄题]: You are a professional robber planning to rob houses along a street. Each house has a certain ...
- 【Leetcode】213. 打家劫舍II(House Robber II)
Leetcode - 213 House Robber II (Medium) 题目描述:一个小偷沿着一条环形的街偷窃,给定数组表示每家屋子的金额,如果偷窃连续的两间屋子就会触发警报,求在不触发警报的 ...
- leetcode 337. House Robber III | 337. 打家劫舍 III(树形dp;什么情况下dp需要强制包含当前元素?)
题目 https://leetcode.com/problems/house-robber-iii/ 思考:什么情况下 dp 需要强制包含当前元素? dp 过程中,需要包含当前元素 的例子: leet ...
最新文章
- top刷新间隔_每天一个linux命令:top命令
- 【Flutter】shared_preferences 本地存储 ( 简介 | 安装 shared_preferences 插件 | 使用 shared_preferences 流程 )
- python tensorflow tf.Session().run()函数(运行操作并评估“fetches”中的张量)
- 四十、ETL工具的输入步骤
- 【Linux】一步一步学Linux——seq命令(221)
- Android 滑动效果基础篇(四)—— Gallery + GridView
- docker Redis集群
- linux推箱子脚本,【编程例题】标准C语言实现推箱子游戏!附解析!
- 售价扎心!索尼Xperia 5国行版开启预售:骁龙855+1200万后置三摄
- 电器缺水保护控制介绍
- 阿里云服务器ECS Ubuntu18.04 首次使用配置教程(图形界面安装)
- 【图像处理】基于matlab直方图医学图像处理【含Matlab源码 458期】
- Kaka集群生产者消费者使用实例(二)
- 低调的华丽:从服务器开发的角度认识 asp.net 中的回调技术
- asterisk连接sip139网络电话
- 宏源药业上市破发:跌幅16% 公司市值168亿超募17亿
- python离散积分_python 计算离散点的微分和积分(超详细)
- 【GameObject 类】 (四)SetActive 显示 / 隐藏游戏对象
- python使用nltk进行中文语料库的词频分布统计
- Saleae Logic 16 逻辑分析仪