题目:

Note: This is an extension of House Robber.

After robbing those houses on that street, the thief has found himself a new place for his thievery so that he will not get too much attention. This time, all houses at this place are arranged in a circle. That means the first house is the neighbor of the last one. Meanwhile, the security system for these houses remain the same as for those in the previous street.

Given a list of non-negative integers representing the amount of money of each house, determine the maximum amount of money you can rob tonight without alerting the police.

题目解答:

这个题目是之前House Robber的扩展,需要注意的是,这次的序列是一个环,同样的偷盗策略,不能连着偷窃两家。这就意味着,偷了第一家的东西,就不能偷最后一家的东西。所以,可以将下面两者的值比较一下,取出最大值即可。

(1)偷第一家,不偷最后一家;

(2)从第二家开始偷,偷到最后一家为止。

代码:

class Solution {
public:int rob(vector<int>& nums) {if(nums.size() <= 0)return 0;if(nums.size() == 1)return nums[0];if(nums.size() == 2)return max(nums[0], nums[1]);int size = nums.size();int left = subRob(nums, 0, size - 2);int right = subRob(nums, 1, size - 1);return max(left, right);}int subRob(vector<int>& nums, int start, int end) {int size = end - start + 1;vector<int> getMoney(size);getMoney[0] = nums[start];getMoney[1] = max(getMoney[0], 0 + nums[start + 1]);start += 2;for(int i = 2; i < size;i++){getMoney[i] = max(getMoney[i - 1],getMoney[i - 2] + nums[start]);start++;}return getMoney[size - 1];}int max(int a, int b){return a > b ? a : b;}};

  

转载于:https://www.cnblogs.com/CodingGirl121/p/5546417.html

Leetcode题目:House Robber II相关推荐

  1. [leetcode] 213. House Robber II 解题报告

    题目链接:https://leetcode.com/problems/house-robber-ii/ Note: This is an extension of House Robber. Afte ...

  2. leetcode 213. House Robber II | 213. 打家劫舍 II(Java)

    题目 https://leetcode.com/problems/house-robber-ii/ 题解 这道题是「198. 打家劫舍」的进阶,和第 198 题的不同之处是,这道题中的房屋是首尾相连的 ...

  3. LeetCode 213. House Robber II(小偷游戏)

    原题网址:https://leetcode.com/problems/house-robber-ii/ Note: This is an extension of House Robber. Afte ...

  4. LeetCode 213 House Robber II Python

    题意:你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金.这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的.同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的 ...

  5. 【Leetcode】213. 打家劫舍II(House Robber II)

    Leetcode - 213 House Robber II (Medium) 题目描述:一个小偷沿着一条环形的街偷窃,给定数组表示每家屋子的金额,如果偷窃连续的两间屋子就会触发警报,求在不触发警报的 ...

  6. leetcode 337. House Robber III | 337. 打家劫舍 III(树形dp;什么情况下dp需要强制包含当前元素?)

    题目 https://leetcode.com/problems/house-robber-iii/ 思考:什么情况下 dp 需要强制包含当前元素? dp 过程中,需要包含当前元素 的例子: leet ...

  7. Leetcode题目练习总结(持续更新......)

    Leetcode题目练习 数组 1.两数之和 26. 删除排序数组中的重复项 27. 移除元素 35.搜索插入位置 53.最大子序列 66.加一 88.合并两个有序数组 118.杨辉三角 119.杨辉 ...

  8. Leetcode - Subsets I,II

    Leetcode - 078. Subsets 这道题重定义了什么叫可行解: 一般而言,可行解需要满足强约束性条件集,而本题的可行解就是单一弱约束性条件(distinct integers,只需要当前 ...

  9. 二叉树笔记(深度遍历与广度遍历+13道leetcode题目(深度3道、广度10道))

    本文章为结合leetcode题目以及公众号"代码随想录"的文章所做的笔记! 感觉代码随想录的题目整理真的很好,比自己盲目刷题好很多. 目录 1.二叉树小记 1.满二叉树与完全二叉树 ...

  10. 【难点+重点BFS】LeetCode 126. Word Ladder II

    LeetCode 126. Word Ladder II Solution1: 参考自花花酱:http://zxi.mytechroad.com/blog/searching/leetcode-126 ...

最新文章

  1. mapdb java_JVM崩溃后MapDb恢复
  2. Tomcat问题 无法启动
  3. Win7下安装配置PHP+Apache+Mysql+PHPMyAdmin环境教程(非集成)
  4. mysql 配置文件设置最大链接数 max_connections不生效
  5. java swt 双屏_Java中AWT、Swing与SWT三大GUI技术的原理与效率差异
  6. 前端学习(3063):vue+element今日头条管理-总页码处理2
  7. 实现进程守护 脚本命令
  8. IDEA 配置Tomcat运行Servlet项目
  9. Win11如何禁用USB端口?禁用USB端口的方法
  10. 秒懂C#通过Emit动态生成代码
  11. QT遍历 Json 根节点
  12. 张柏芝-从清纯走向堕落
  13. ⻦哥的LINUX私房菜 学习
  14. http库三剑客:httpx
  15. 实现闲鱼自动化脚本-方案对比分析
  16. PDF裁剪页面及调整页面大小的方法
  17. 我的jquery之路(二)
  18. linux操作系统下 c语言编程入门
  19. 阿里二面:RocketMQ 集群 Broker 挂了,会造成什么影响?
  20. java 字节码增强之ASM

热门文章

  1. 理财工具——七大标准比率
  2. Linux优化和目录结构
  3. Comparable和Comparator的比较
  4. vmware esxi 查看网卡、Raid卡驱动
  5. AIX上如何启动和停止系统服务
  6. 开源中国源码学习笔记
  7. 软考培训 - 上海2班开课剪影
  8. WindowsServer2012史记3-SMB管理
  9. 在C#中如何在客户端接收信件
  10. BCH再度领涨,BTC能否及时跟上