【每日算法Day 105】打家劫舍第二弹:看好你的电瓶车!
题目链接
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】打家劫舍第二弹:看好你的电瓶车!相关推荐
- < 每日算法 - Javascript解析:经典弹珠游戏 >
每日算法 - JavaScript解析:弹珠游戏 一.任务描述: > 示例一: >示例二 二.题意解析 三.解决方案: 往期内容
- 智能车百度赛道培训第二弹-算法篇
智能车百度赛道培训第二弹--算法篇来袭!接住了吗?往下看!
- 面试基础算法及编程 第二弹(链表相关:主要考察指针的应用)
// # -*- coding:utf-8 -*- // # @Author: Mr.chen(ai-chen2050@qq.com) // # @Date: 2018-08-16 16:35:13 ...
- 每日三道前端面试题--vue 第二弹
每日三道前端面试题--vue 第二弹 简述框架和函数库的区别? 1. 库(Library) , 代表 : jquery 2. 框架 (Framework), 代表:vue 3. 主要区别 : 控制反转 ...
- 【ZOJ3587】Marlon's String——白四爷×KMP 白濑肆の算法完全解读KMP篇 KMP来袭第二弹前缀什么的果然最讨厌了!【1.0%达成!】
#include <iostream> #include <cstring> #include <cstdio> #include <cstdlib> ...
- 李飞飞AI100报告第二弹,提出14大AI机遇与挑战,82页pdf
来源:Stanford 编辑:好困 David 「AI100」报告第二弹! 本次报告评估了2016年至2021年间人工智能的发展,涵盖14大问题,探讨了人工智能发展的关键领域. 主题是「人工智能在日常 ...
- 第二弹!谷歌大脑2017总结下篇:Jeff Dean梳理6大领域研究
李杉 维金 编译自 Google Blog 量子位 出品 | 公众号 QbitAI 传奇一般的Jeff Dean今天发布了谷歌大脑2017总结的第二弹. 在这篇总结中,Jeff Dean详细论述了谷歌 ...
- 【每日算法】C语言8大经典排序算法(2)
接上文--->[每日算法]C语言8大经典排序算法(1) 二.插入类排序 插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中 ...
- 计算机导论的平时分多少,学霸养成 | 大一期末考试经验第二弹,千万别错过!...
原标题:学霸养成 | 大一期末考试经验第二弹,千万别错过! 计算机导论.军理和思修的期末考试经验在这里,看完别忘了点击"阅读原文"呦~ 计算机导论 其实<计算机导论>是 ...
- 秋招面经第二弹:百度一面-大数据开发工程师
秋招第二弹:百度一面-大数据开发工程师 写在最前:秋招以来一直在冲,因为事情比较多,对于笔试面试一直没有复盘,现在靠仅存的记忆把面试的一些问题记录下来,尽可能记录出能回忆到的问题,但可能记的不是很全. ...
最新文章
- GPU对决TPU,英伟达能否守住领先地位?
- 牛!王军等喜提NBT:用AI在肠道超高效“挖”抗菌肽(附独家专访) | 热心肠日报...
- 漫画:什么是 “建造者模式” ?
- 中秋应景诗词歌赋赏析
- Glob Patterns匹配模式使用
- linux安装svn(yum安装)
- Inpaint for Mac(图片去水印软件)
- python实现翻转给定列表中的元素
- python循环习题
- RTCM3.3电文信号,消息类型GPS MSM4的解码
- ipq806X的猜想
- 项目周例会会议纪要模板
- Faster R-CNN算法详细流程
- winhttp API 获取服务器文件大小(更新时间)等
- 高斯光束的简单matlab仿真
- double转int方法为 去尾法
- canvas自定义多边形
- 如何查计算机硬盘型号,如何查看硬盘的型号
- iOS-class方法和objc_getClass方法
- 优化vue打包chunk-vendors.js 过大