LeetCode2560. House Robber IV——二分答案+动态规划

文章目录

    • 一、题目
    • 二、题解

一、题目

There are several consecutive houses along a street, each of which has some money inside. There is also a robber, who wants to steal money from the homes, but he refuses to steal from adjacent homes.

The capability of the robber is the maximum amount of money he steals from one house of all the houses he robbed.

You are given an integer array nums representing how much money is stashed in each house. More formally, the ith house from the left has nums[i] dollars.

You are also given an integer k, representing the minimum number of houses the robber will steal from. It is always possible to steal at least k houses.

Return the minimum capability of the robber out of all the possible ways to steal at least k houses.

Example 1:

Input: nums = [2,3,5,9], k = 2
Output: 5
Explanation:
There are three ways to rob at least 2 houses:

  • Rob the houses at indices 0 and 2. Capability is max(nums[0], nums[2]) = 5.
  • Rob the houses at indices 0 and 3. Capability is max(nums[0], nums[3]) = 9.
  • Rob the houses at indices 1 and 3. Capability is max(nums[1], nums[3]) = 9.
    Therefore, we return min(5, 9, 9) = 5.
    Example 2:

Input: nums = [2,7,9,3,1], k = 2
Output: 2
Explanation: There are 7 ways to rob the houses. The way which leads to minimum capability is to rob the house at index 0 and 4. Return max(nums[0], nums[4]) = 2.

Constraints:

1 <= nums.length <= 105
1 <= nums[i] <= 109
1 <= k <= (nums.length + 1)/2

二、题解

class Solution {
public:int minCapability(vector<int>& nums, int k) {int n = nums.size();int l = *min_element(nums.begin(),nums.end());int r = *max_element(nums.begin(),nums.end());int res = 0;while(l <= r){int mid = (l + r) / 2;if(check(nums,n,mid) >= k){res = mid;r = mid - 1;}else l = mid + 1;}return res;}int check(vector<int>& nums,int n,int ability){if(n == 1) return nums[0] <= ability ? 1 : 0;if(n == 2) return (nums[0] <= ability || nums[1] <= ability) ? 1 : 0;vector<int> dp(n,0);dp[0] = nums[0] <= ability ? 1 : 0;dp[1] = (nums[0] <= ability || nums[1] <= ability) ? 1 : 0;for(int i = 2;i < n;i++){dp[i] = max(dp[i-1],(nums[i] <= ability ? 1 : 0) + dp[i-2]);}return dp[n-1];}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/689972.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS background-size

background-size 菜鸟教程 CSS3 background-size 属性 MDN Web 开发技术>CSS&#xff1a;层叠样式表>background-size CSS的background 背景图片自动适应元素大小,实现img的默认效果 background-size:100% 100%&#xff1b; 在CSS中&#xff0c;background-size属性用…

C++ 基础算法 快速排序

之前写过这道题的分享&#xff0c;但是比较粗糙&#xff0c;因此这里想系统记录一遍。 给定你一个长度为 n 的整数数列。 请你使用快速排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行&#xff0c;第一行包含整数 n 。 第二行包含…

SNMP——简单网络管理协议

Q 什么SNMP? A:SNMP是广泛应用于TCP/IP网络的网络管理标准协议&#xff0c;该协议能够支持网络管理系统&#xff0c;用以监测连接到网络上的设备是否有任何引起管理上关注的情况。SNMP采用轮询机制&#xff0c;提供最基本的功能集&#xff0c;适合小型、快速、低价格的环境使…

【Docker】dockerfile学习

目录 一、Dockerfile文件说明FROMRUNWORKDIRADDCOPYENV 二、例子解析三、构建Dockerfile实例&#xff08;FROM ubuntu:20.04&#xff09;部署一整套的系统和目标软件&#xff08;FROM python:3.7&#xff09;专注于Python应用的快速部署&#xff08;FROM ubuntu:20.04&#xff…

vue项目中下载静态资源里的pdf文件

1.把文件放在项目目录src/assets文件下 2.在项目是用a标签下载 <a:href"require(/assets/download.pdf)"download"使用说明.pdf"target"_blank"><img src"/assets/banner.png" class"bannerimg"/></a> 以…

【xv6-labs】02 Lab: system calls

GDB 如何启动gdb 启动 make CPUs1 qemu-gdb在另一个终端启动 gdb-multiarch kernel/kernel进入gdb后输入 target remote localhost:26000 GDB 的一些命令 shell clear # 清屏layout src # 显示源码layout regs # 显示寄存器layout split # 同时显示源码和寄存器backtrace #…

Transformer实战-系列教程15:DETR 源码解读2(整体架构:DETR类)

&#x1f6a9;&#x1f6a9;&#x1f6a9;Transformer实战-系列教程总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 点我下载源码 DETR 算法解读 DETR 源码解读1&#xff08;项目配置/CocoDetection类/ConvertCocoP…

什么是485远程水表?

485远程水表是一种利用RS485通信协议进行数据传输的智能水表&#xff0c;它具有远程读数、实时监控、数据存储等功能&#xff0c;为水资源管理和居民用水提供了便捷。在我国&#xff0c;随着物联网、大数据等技术的发展&#xff0c;485远程水表得到了广泛的应用&#xff0c;为智…

引领企业服务新篇章,纷享销客揽获4项大奖

近日&#xff0c;连接型CRM的开创者纷享销客&#xff0c;凭借其卓越的整体实力&#xff0c;分别荣获《互联网周刊》&eNet研究院“2023年度最佳企业服务产品奖”、携手盈建科荣获中国工业报社“数字化转型优秀案例”、入选产业家“2023产业数字化金铲奖”以及KVBrand“2023年…

BUUCTF第二十二、二十三题解题思路

第二十二题[WUSTCTF2020]level1 查壳 64位ELF文件&#xff0c;用64位IDA打开。 在函数界面可以看到一个“flag”&#xff0c;跟进该函数。 int __cdecl main(int argc, const char **argv, const char **envp) {int i; // [rsp4h] [rbp-2Ch]FILE *stream; // [rsp8h] [rbp-2…

Java项目中,值的对应问题

数据库表 实体类&#xff08;对应数据库的字段&#xff0c;可以驼峰命名&#xff09; 封装的查询方法sql List<Student> getAllStudents(String name,String studentId,Integer classId,String className); 这里的值一一对应。 在多表查询时&#xff0c;查询到的指定字段…

备战蓝桥杯 Day3

目录 搜索与回溯 1222&#xff1a;放苹果 1221&#xff1a;分成互质组 1218&#xff1a;取石子游戏 数组 1126&#xff1a;矩阵转置 1127&#xff1a;图像旋转 1128&#xff1a;图像模糊处理 1120&#xff1a;同行列对角线的格 string 2046&#xff1a;【例5.15】替换…

JAVA高并发——核心知识点

文章目录 1、重要概念1.1、同步(Synchronous)和异步(Asynchronous)1.2、并发(Concurrency)和并行(Parallelism)1.3、临界区1.4、阻塞(Blocking)和非阻塞(Non-Blocking)1.5、死锁(Deadlock)、饥饿(Starvation)和活锁(Livelock)1.6、并发级别1.6.1、阻塞1.6.2、无饥饿(Starvation…

2011-2022年上市公司ESG表现、制造业高质量发展与数字化转型原始数据计算结果do代码

2011-2022年上市公司ESG表现、制造业高质量发展与数字化转型 原始数据(exceldta)计算结果do代码 参照王丹&#xff08;2023&#xff09;的做法&#xff0c;对来自统计与决策《ESG表现、制造业高质量发展与数字化转型》一文中的基准回归部分进行复刻&#xff1a; 1、数据时间&a…

java 单例模式

单例模式是最简单的设计模式之一。即一个类负责创建自己的对象&#xff0c;同时确保只有单个对象被创建&#xff0c;提供一种访问其唯一的对象的方式&#xff0c;可以直接访问&#xff0c;不需要实例化该类的对象。 1、懒汉式&#xff0c;线程不安全 public class Singleton …

两个发散级数的和是否发散?

1、两个发散级数的和可能是收敛的也可能是发散的。 例子&#xff1a; 发散级数 ∑ 1 n \sum\frac{1}{n} ∑n1​和发散级数 ∑ ( 1 n 2 − 1 n ) \sum(\frac{1}{n^{2}}-\frac{1}{n}) ∑(n21​−n1​)的和是收敛级数&#xff1b; 发散级数∑(1/n) 和发散级数 ∑(1/n1/n) 的和是…

为什么你用的redis没有出现雪崩,击穿,穿透

一、前言 在大规模并发访问系统中&#xff0c;如果你的系统用到redis&#xff0c;在面试的时候面试官往往会问你的系统有没有出现雪崩&#xff0c;击穿&#xff0c;穿透这样的场景&#xff0c;然后是怎样解决的。博主也经常反复温习redis的特性&#xff0c;总是被雪崩&#xf…

不懂咱就学,记不住多看几遍(二)

一、Redis分布式锁中加锁与解锁、过期如何续命 实现要点&#xff1a; 互斥性&#xff0c;同一时刻&#xff0c;只能有一个客户端持有锁。防止死锁发生&#xff0c;如果持有锁的客户端因崩溃而没有主动释放锁&#xff0c;也要保证锁可以释放并且其他客户端可以正常加锁。加锁和…

请解释 C++ 中的析构函数,并说明它们的作用。

请解释 C 中的析构函数&#xff0c;并说明它们的作用。 在C中&#xff0c;析构函数&#xff08;Destructor&#xff09;是一种特殊类型的成员函数&#xff0c;用于在对象被销毁时执行特定的清理工作。析构函数的名称与类名相同&#xff0c;前面加上一个波浪号&#xff08;~&am…

【C++开篇 -- 入门语法篇】

C学习笔记---001 C知识开篇1、介绍C的背景以及与C语言的区别1.1、什么是C?1.2、C的背景 2、C与C语言的区别3、C优化命名空间3.1、C中的问题3.2、命名空间的应用 4、总结 C知识开篇 前言&#xff1a; 首先&#xff0c;C兼容C&#xff0c;C在C语言范畴上增添了一些优化&#xf…