news 2026/2/14 6:28:15

D.二分查找-二分答案-求最小——1870. 准时到达的列车最小时速

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
D.二分查找-二分答案-求最小——1870. 准时到达的列车最小时速

题目链接:1870. 准时到达的列车最小时速(中等)

算法原理:

解法:二分查找

50ms击败73.54%

时间复杂度O(n × log(max_speed))(n 是 dist 数组长度,max_speed ≈ 10^9

题目有两个变化的条件:时速和时间,且呈负相关单调:时速↑ 花费时间↓ 由于要找最小时速,属于在二分区间最左端点,因此采用最左端点模型

①目标变量:时速

②目标条件:经过n趟车后花费的总时间<=hour

③转换逻辑:n趟车按此时速行驶后花费多少时间

具体步骤:

①确定区间边界:

left:1,因为题目规定了hour≥1,如果初始化为0,相当于原地不动了

right:10⁷,因为题目明确说了“测试用例保证答案不超过 10⁷”

②确定模型:呈负相关单调:时速↑ 花费时间↓,题目要求返回最小正整数时速,因此采用最左端点模型,注意虽然时间是double类型的,但却不是浮点二分,因为咱们要返回的是时速,题目要求最小正整数,时间的double是用来判断时速是否符合要求的

③check方法设计:累加各趟车需要花费的时间,注意前n-1趟车的时间需要向上取整,因为题目说了,每趟列车只在整点发车,而向上取整的公式在下面这篇博客应用过👇

第 175 场双周赛Q2——3824. 减小数组使其满足条件的最小 K 值

直接拿来用就可以,最后一趟车的时间直接累加,无需向上取整,如果时间太长,超过了hour,说明时速太慢,需要提速,向右调整,因此返回true

④无法准时到达的情况:由于每趟车只在整点发车,不管你跑多快,都得等到整点走,因此最快的情况也得是dist.length-1个小时,如果hour比这个小,那么一定无法到达,返回-1

Java代码:

class Solution { public int minSpeedOnTime(int[] dist, double hour) { int left=1,right=10_000_000; //边界预处理:每段至少一小时,若hour不够直接返回-1 if(hour<=dist.length-1) return -1; while(left<right){ int mid=left+(right-left)/2; if(check(mid,dist,hour)) left=mid+1; else right=mid; } return left; } private boolean check(int mid,int[] dist, double hour){ double time=0; int n=dist.length; for(int i=0;i<n;i++){ //只有前n-1段需要向上取整,最后一段直接累加 if(i!=n-1) time+=(double)((dist[i]-1)/mid+1); else time+=(double)dist[i]/mid; //如果超时了,说明速度太慢,要提速,向右移动,所以返回true if(time>hour) return true; } return time>hour; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/11 0:19:16

8-4 WPS JS宏 new RegExp()、test()、exec()正则表达式的创建与使用

8-4 WPS JS宏 new RegExp()、test()、exec()正则表达式的创建与使用 如果前面讲解的字符串处理函数还不能轻松处理,或者处理不了字符串数据,那么可以使用正则表达式。真正强大的字符串处理技术,它可以做查找、替换、拆分等操作。 一、正则表达式函数 new RegExp(): 新建正…

作者头像 李华
网站建设 2026/2/12 18:34:00

新型Brotli压缩格式将优化PDF文件大小

Brotli是当今应用最广泛却鲜为人知的压缩格式之一&#xff0c;已被各大浏览器和内容分发网络广泛采用。然而在PDF文档领域&#xff0c;自1996年版本1.2以来&#xff0c;PDF一直采用FlateDecode过滤器进行压缩&#xff0c;该过滤器也被用于.zip和.png文件的压缩。这一现状即将改…

作者头像 李华
网站建设 2026/2/11 10:22:29

基于随机森林算法的Boss直聘数据分析及可视化(源码+lw+部署文档+讲解等)

课题介绍本课题旨在设计并实现基于随机森林算法的Boss直聘数据分析及可视化系统&#xff0c;解决Boss直聘平台招聘数据量大、杂乱无章、核心信息提取困难、招聘趋势难以预判、数据价值无法有效挖掘等问题。系统采用SpringBoot作为后端核心框架&#xff0c;结合MyBatis-Plus简化…

作者头像 李华
网站建设 2026/2/12 17:19:09

计算机大数据毕设实战-基于Hadoop的某篮球队各个球员数据分析系统的设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/2/13 17:24:33

价值投资中的合成食品技术趋势

价值投资中的合成食品技术趋势 关键词:价值投资、合成食品技术、技术趋势、食品行业、投资策略 摘要:本文围绕价值投资视角下的合成食品技术趋势展开。详细介绍了合成食品技术的背景,包括其目的、适用读者群体、文档结构等。深入剖析了合成食品技术的核心概念、算法原理、数…

作者头像 李华