LeetCode 2141. 同时运行 N 台电脑的最长时间(二分查找)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

你有 n 台电脑。给你整数 n 和一个下标从 0 开始的整数数组 batteries ,其中第 i 个电池可以让一台电脑 运行 batteries[i] 分钟。
你想使用这些电池让 全部 n 台电脑 同时 运行。

一开始,你可以给每台电脑连接 至多一个电池 。
然后在任意整数时刻,你都可以将一台电脑与它的电池断开连接,并连接另一个电池,你可以进行这个操作 任意次
新连接的电池可以是一个全新的电池,也可以是别的电脑用过的电池。
断开连接和连接新的电池不会花费任何时间。

注意,你不能给电池充电。

请你返回你可以让 n 台电脑同时运行的 最长 分钟数。

示例 1:
在这里插入图片描述

输入:n = 2, batteries = [3,3,3]
输出:4
解释:
一开始,将第一台电脑与电池 0 连接,第二台电脑与电池 1 连接。
2 分钟后,将第二台电脑与电池 1 断开连接,并连接电池 2 。注意,电池 0 还可以供电 1 分钟。
在第 3 分钟结尾,你需要将第一台电脑与电池 0 断开连接,然后连接电池 1 。
在第 4 分钟结尾,电池 1 也被耗尽,第一台电脑无法继续运行。
我们最多能同时让两台电脑同时运行 4 分钟,所以我们返回 4

示例 2:
在这里插入图片描述

输入:n = 2, batteries = [1,1,1,1]
输出:2
解释:
一开始,将第一台电脑与电池 0 连接,第二台电脑与电池 2 连接。
一分钟后,电池 0 和电池 2 同时耗尽,所以你需要将它们断开连接,并将电池 1 和第一台电脑连接,电池 3 和第二台电脑连接。
1 分钟后,电池 1 和电池 3 也耗尽了,所以两台电脑都无法继续运行。
我们最多能让两台电脑同时运行 2 分钟,所以我们返回 2 。提示:
1 <= n <= batteries.length <= 10^5
1 <= batteries[i] <= 10^9

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-running-time-of-n-computers
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 二分查找答案 mid
  • 对于电池 >= mid 的,只能给一个电脑使用
  • < mid 的电池,可以凑起来给一个电脑使用
class Solution {
public:long long maxRunTime(int n, vector<int>& batteries) {long long l = 1, r = 1e15, mid, ans = 0;while(l <= r){mid = (l+r)>>1;if(ok(batteries, mid, n)){ans = mid;l = mid+1;}elser = mid-1;}return ans;}bool ok(vector<int>& bat, long long t, int n){long long num = 0, total = 0;for(auto b : bat){if(b >= t) num++; // 大于mid的电池给一个电脑使用else{total += b;if(total >= t)//凑起来的电量给一个电脑使用{num++;total -= t;}}}return num >= n; // 能够满足 n 个电脑}
};

140 ms 54.4 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

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

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

相关文章

十二、HTML5新增标签特性详解(audio、video、input)

HTML5 第一天 一、什么是 HTML5 HTML5 的概念与定义 定义&#xff1a;HTML5 定义了 HTML 标准的最新版本&#xff0c;是对 HTML 的第五次重大修改&#xff0c;号称下一代的 HTML两个概念&#xff1a; 是一个新版本的 HTML 语言&#xff0c;定义了新的标签、特性和属性拥有一…

联想新电脑桌面没有计算机,联想电脑没有wifi图标不见了怎么办

1.联想笔记本电脑WiFi图标不见了,怎么回事吧,试了很多方法一、无线网卡开关未打开&#xff1b;1、查看周边有没有手动百机械开关&#xff0c;一般在前面板&#xff0c;上面标有无线符号。2、按一下Fn无线信号键(度F几中的一个)找打无线WIFI3、打开控制机板&#xff0c;右上角查…

Spring与Oauth2整合示例 spring-oauth-server

原文地址:http://www.oschina.net/p/spring-oauth-server?fromerrvpTctDBF转载于:https://www.cnblogs.com/longshiyVip/p/5052657.html

十三、CSS 3新特性详解(一)——属性、结构伪类、伪元素选择器,nth-child与nth-of-type区别,2D rotate,calc函数、滤镜filter、过渡transition

七、CSS3 属性选择器(上) 什么是 CSS3 在 CSS2 的基础上拓展、新增的样式 CSS3 发展现状 移动端支持优于 PC 端CSS3 目前还草案&#xff0c;在不断改进中CSS3 相对 H5&#xff0c;应用非常广泛 属性选择器列表 属性选择器代码演示 &#xff08;1&#xff09;E[att] 选择具有…

信息的表示和处理

文章目录1. 信息存储2. 整数的表示learn from 《深入理解计算机系统》 1. 信息存储 大多数计算机&#xff0c;一字节&#xff08;最小的寻址单元&#xff09; byte 8 bits 位 C语言中一个指针的值&#xff08;无论它指向一个整数、一个结构或是某个其他程序对象&#xff09;…

计算机等级考试试题在线测试,计算机等级考试上机练习题.pdf

计算机等级考试上机练习题一、程序设计题浙江省计算机等级考试(二级VB )上机测试的程序设计题&#xff0c;从2002 年秋季开始&#xff0c;其题型及考试要求都有较大变化。要求考生在老考生目录中&#xff0c;按照题目要求&#xff0c;自己新建一工程文件Design.Vbp &#xff0c…

十一、MySQL视图学习笔记(详解)

视图 含义&#xff1a;理解成一张虚拟的表&#xff0c;和普通表一样使用 mysql5.1版本出现的新特性&#xff0c;是通过表动态生成的数据 比如&#xff1a;舞蹈班和普通班级的对比 视图和表的区别&#xff1a; 名称创建语法的关键字使用占用物理空间视图create view增删改查&…

css cursor 的可选值(鼠标的各种样式)

crosshair; 十字准心 The cursor render as a crosshair游标表现为十字准线 cursor: pointer; cursor: hand;写两个是为了照顾IE5&#xff0c;它只认hand。 手 The cursor render as a pointer (a hand) that indicates a link游标以暗示(手指)的形式来表明有一个连…

2021年算法工作总结

2021年5月10日&#xff0c;我转行到互联网做算法工作&#xff0c;离开了工作接近8年的机械设计工作&#xff0c;还是要在这里感谢军哥对我的帮助和指点&#xff01; 换工作后&#xff0c;陆续学了《流畅的python》&#xff0c;FastAPI框架学了点皮毛&#xff0c;python web 编…

学硕计算机考296算高分么,考研总分是多少算高分?考研340分是什么水平?

原标题&#xff1a;考研总分是多少算高分?考研340分是什么水平?每个考研的学生都想考一个高分&#xff0c;分数越高代表录取的希望越大&#xff0c;但是考研达到多少分算高分呢?有没有衡量考研分数的标准呢?小编为大家整理了关于考研总分高分相关的相关信息&#xff0c;一起…

HDU 4117 GRE Words

这道题不难想到这样的dp。 dp[字符串si] 以si为结尾的最大总权值。 dp[si] max(dp[sj]) &#xff0c;1.j < i&#xff0c;2.sj是si的子串。 对于第二个条件&#xff0c;是一个多模版串匹配的问题&#xff0c;可以用AC自动机。 预先O(m)把AC自动机建好&#xff0c;然后动态…

十四、CSS 3新特性详解(二)——2D转换(transform)、动画(animation)、动画序列

HTML5 第二天 一、rotate 2d旋转指的是让元素在2维平面内顺时针旋转或者逆时针旋转 使用步骤&#xff1a; 给元素添加转换属性 transform属性值为 rotate(角度) 如 transform:rotate(30deg) 顺时针方向旋转30度 div{transform: rotate(0deg); }二、三角 <!DOCTYPE html&…

pip/conda导出 requirements.txt 注意事项

pip 使用 pip freeze > ./requirements.txt 导出 requirements.txt 发现很多包没有版本号&#xff0c;而是 file:/// 使用pip list --formatfreeze > ./requirements.txt 导入安装 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt con…

计算机系统操作在线作业,电子科大《计算机操作系统》在线作业3

计算机操作,计算机网络14春13秋 13春电子科大《计算机操作14春13秋 13春电子科大《计算机操作系统》在线作业3 1 2试卷总分&#xff1a;100 测试时间&#xff1a;--单选题、单选题(共 20 道试题&#xff0c;共 100 分。)1. 在下列性质中,哪一个是分时系统的特征()。A. 多路性B.…

fortune命令简介

本文转自《阮志峰的网络日志》&#xff0c;原文网址&#xff1a;http://www.ruanyifeng.com/blog/2015/04/fortune.html 作者&#xff1a; 阮一峰 日期&#xff1a; 2015年4月14日 美国中餐馆的最后一道菜&#xff0c;往往是小甜饼&#xff0c;叫做"幸运饼"&#xff…

conda安装pytorch1.10.1+paddlepaddle-gpu2.2.1+cuda10.2+cudnn7.6.5

NV驱动下载安装https://www.nvidia.cn/Download/index.aspx多卡的话&#xff0c;安装 NCCL https://developer.nvidia.com/nccl/nccl-download安装conda&#xff0c;并配置通道 vim ~/.condarc show_channel_urls: truessl_verify: truechannels:- https://mirrors.tuna.tsing…

十五、CSS 3新特性详解(三)——3D转换(位移、旋转、呈现)、透视perspective、旋转rotateX、Y、Z、呈现transform-style

HTML5 第三天 一、 认识 3D 转换 3D 的特点 近大远小物体和面遮挡不可见 三维坐标系 x 轴&#xff1a;水平向右 – 注意&#xff1a;x 轴右边是正值&#xff0c;左边是负值 y 轴&#xff1a;垂直向下 – 注意&#xff1a;y 轴下面是正值&#xff0c;上面是负值 z 轴&#x…

用计算机表白的数字,用数字表白的句子大全 如何用数字表白一段话

表白总是一个让人十分难忘的经历&#xff0c;如果大家想要对喜欢的人表白&#xff0c;又不好意思直说自己的想法&#xff0c;那么今天的这份用数字表白的句子大全就对你们很有帮助了。跟我一起看看&#xff0c;如何用数字表白一段话呢&#xff1f;一、用数字表白的句子大全1、3…

python 常用 time, datetime处理

python 中 time 有三种格式&#xff1a; float, struct tuple(time.struct_time 或 datetime.datetime), str 常用的&#xff1a; float --> struct tuple: time.localtime( float ) struct time tuple --> str: time.strftime(format, struct time tuple) str --> …

pip安装pytorch1.10.1+paddlepaddle-gpu2.2.1+cuda10.2+cudnn7.6.5

NV驱动下载安装https://www.nvidia.cn/Download/index.aspx多卡的话&#xff0c;安装 NCCL https://developer.nvidia.com/nccl/nccl-download配置 pip 源 vim ~/.pip/pip.conf [global] index-url https://pypi.tuna.tsinghua.edu.cn/simple安装virtualenv包pip install vir…