题目链接

LeetCode 213. 打家劫舍 II[1]

往期回顾:打家劫舍 I :
【每日算法Day 104】偷电瓶的周某今天放出来了,还不赶紧做这道题防范一下![2]

题目描述

你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。

给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。

示例1

        输入:
[2,3,2]
输出:
3

示例2

        输入:
[1,2,3,1]
输出:
4

题解

这题和上一题唯一区别就是首尾只能选一个偷,那么我们可以分为两种情况。

如果不偷第一个,那么问题就变成了在后 个里面偷取的最大价值。

如果不偷最后一个,那么问题就变成了在前 个里面偷取的最大价值。

而这两个转化后的问题就没有首尾连接的约束了,可以直接采用上一题的解法求解,转移方程还是:

最终取两种情况的较大值就行了。

代码

c++

        class Solution {public:int rob1(vector<int>& nums, int l, int r) {int prepre = 0, pre = 0, now = 0;for (int i = l; i <= r; ++i) {now = max(pre, prepre+nums[i]);prepre = pre;pre = now;}return now;}int rob(vector<int>& nums) {int n = nums.size();if (n == 1) return nums[0];int a = rob1(nums, 0, n-2);int b = rob1(nums, 1, n-1);return max(a, b);}
};

参考资料

[1]

LeetCode 213. 打家劫舍 II: https://leetcode-cn.com/problems/house-robber-ii/

[2]

【每日算法Day 104】偷电瓶的周某今天放出来了,还不赶紧做这道题防范一下!: https://godweiyang.com/2020/04/18/leetcode-198/

【每日算法Day 105】打家劫舍第二弹:看好你的电瓶车!相关推荐

  1. < 每日算法 - Javascript解析:经典弹珠游戏 >

    每日算法 - JavaScript解析:弹珠游戏 一.任务描述: > 示例一: >示例二 二.题意解析 三.解决方案: 往期内容

  2. 智能车百度赛道培训第二弹-算法篇

    智能车百度赛道培训第二弹--算法篇来袭!接住了吗?往下看!

  3. 面试基础算法及编程 第二弹(链表相关:主要考察指针的应用)

    // # -*- coding:utf-8 -*- // # @Author: Mr.chen(ai-chen2050@qq.com) // # @Date: 2018-08-16 16:35:13 ...

  4. 每日三道前端面试题--vue 第二弹

    每日三道前端面试题--vue 第二弹 简述框架和函数库的区别? 1. 库(Library) , 代表 : jquery 2. 框架 (Framework), 代表:vue 3. 主要区别 : 控制反转 ...

  5. 【ZOJ3587】Marlon's String——白四爷×KMP 白濑肆の算法完全解读KMP篇 KMP来袭第二弹前缀什么的果然最讨厌了!【1.0%达成!】

    #include <iostream> #include <cstring> #include <cstdio> #include <cstdlib> ...

  6. 李飞飞AI100报告第二弹,提出14大AI机遇与挑战,82页pdf

    来源:Stanford 编辑:好困 David 「AI100」报告第二弹! 本次报告评估了2016年至2021年间人工智能的发展,涵盖14大问题,探讨了人工智能发展的关键领域. 主题是「人工智能在日常 ...

  7. 第二弹!谷歌大脑2017总结下篇:Jeff Dean梳理6大领域研究

    李杉 维金 编译自 Google Blog 量子位 出品 | 公众号 QbitAI 传奇一般的Jeff Dean今天发布了谷歌大脑2017总结的第二弹. 在这篇总结中,Jeff Dean详细论述了谷歌 ...

  8. 【每日算法】C语言8大经典排序算法(2)

    接上文--->[每日算法]C语言8大经典排序算法(1) 二.插入类排序 插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中 ...

  9. 计算机导论的平时分多少,学霸养成 | 大一期末考试经验第二弹,千万别错过!...

    原标题:学霸养成 | 大一期末考试经验第二弹,千万别错过! 计算机导论.军理和思修的期末考试经验在这里,看完别忘了点击"阅读原文"呦~ 计算机导论 其实<计算机导论>是 ...

  10. 秋招面经第二弹:百度一面-大数据开发工程师

    秋招第二弹:百度一面-大数据开发工程师 写在最前:秋招以来一直在冲,因为事情比较多,对于笔试面试一直没有复盘,现在靠仅存的记忆把面试的一些问题记录下来,尽可能记录出能回忆到的问题,但可能记的不是很全. ...

最新文章

  1. GPU对决TPU,英伟达能否守住领先地位?
  2. 牛!王军等喜提NBT:用AI在肠道超高效“挖”抗菌肽(附独家专访) | 热心肠日报...
  3. 漫画:什么是 “建造者模式” ?
  4. 中秋应景诗词歌赋赏析
  5. Glob Patterns匹配模式使用
  6. linux安装svn(yum安装)
  7. Inpaint for Mac(图片去水印软件)
  8. python实现翻转给定列表中的元素
  9. python循环习题
  10. RTCM3.3电文信号,消息类型GPS MSM4的解码
  11. ipq806X的猜想
  12. 项目周例会会议纪要模板
  13. Faster R-CNN算法详细流程
  14. winhttp API 获取服务器文件大小(更新时间)等
  15. 高斯光束的简单matlab仿真
  16. double转int方法为 去尾法
  17. canvas自定义多边形
  18. 如何查计算机硬盘型号,如何查看硬盘的型号
  19. iOS-class方法和objc_getClass方法
  20. 优化vue打包chunk-vendors.js 过大

热门文章

  1. 反向代理实现同域名下PHP和Java共存
  2. 1688: [Usaco2005 Open]Disease Manangement 疾病管理( 枚举 )
  3. java学习笔记—标准连接池的实现(27)
  4. word-wrap、word-break、white-space
  5. HDU 1213 How Many Tables 并查集 水~
  6. EF Core 小工具
  7. Beta版本测试第二天
  8. OOP in Javascript
  9. 12. Integer to Roman
  10. 团队冲刺第一阶段第九天