当前位置: 首页 > news >正文

LeetCode 分类刷题:2187. 完成旅途的最少时间

题目

给你一个数组 time ,其中 time[i] 表示第 i 辆公交车完成 一趟旅途 所需要花费的时间。

每辆公交车可以 连续 完成多趟旅途,也就是说,一辆公交车当前旅途完成后,可以 立马开始 下一趟旅途。每辆公交车 独立 运行,也就是说可以同时有多辆公交车在运行且互不影响。

给你一个整数 totalTrips ,表示所有公交车 总共 需要完成的旅途数目。请你返回完成 至少 totalTrips 趟旅途需要花费的 最少 时间。

示例 1:

输入:time = [1,2,3], totalTrips = 5
输出:3
解释:
- 时刻 t = 1 ,每辆公交车完成的旅途数分别为 [1,0,0] 。已完成的总旅途数为 1 + 0 + 0 = 1 。
- 时刻 t = 2 ,每辆公交车完成的旅途数分别为 [2,1,0] 。已完成的总旅途数为 2 + 1 + 0 = 3 。
- 时刻 t = 3 ,每辆公交车完成的旅途数分别为 [3,1,1] 。已完成的总旅途数为 3 + 1 + 1 = 5 。
所以总共完成至少 5 趟旅途的最少时间为 3 。

示例 2:

输入:time = [2], totalTrips = 1
输出:2
解释:
只有一辆公交车,它将在时刻 t = 2 完成第一趟旅途。
所以完成 1 趟旅途的最少时间为 2 。

解析

答案

class Solution:def minimumTime(self, time: List[int], totalTrips: int) -> int:left = 0    # 下界right = totalTrips * min(time)    # 上界while left + 1 < right:mid = (left + right) // 2   # 其他语言防止溢出:left + (right - left) // 2trip = 0for t in time:    # 计算当前最快时间mid内,可以完成旅途的次数trip += mid // tif trip < totalTrips:    # 可以完成旅途的次数比总次数小,找更大的时间left = midelse:    # 可以完成旅途的次数比总次数大,找更小的时间right = midreturn right

复杂度分析

作者:灵茶山艾府
链接:https://leetcode.cn/problems/minimum-time-to-complete-trips/solutions/1295955/er-fen-da-an-python-yi-xing-gao-ding-by-xwvs8/
来源:力扣(LeetCode)


文章转载自:

http://gaXvqaMH.xhLht.cn
http://fLkZNSqn.xhLht.cn
http://SYNT0hQR.xhLht.cn
http://hrKh9LaN.xhLht.cn
http://Rjo6JEg7.xhLht.cn
http://1axTSRZH.xhLht.cn
http://Ee7xKwYd.xhLht.cn
http://eePAExr9.xhLht.cn
http://dT7TdcCE.xhLht.cn
http://lQmU4zhQ.xhLht.cn
http://E1N6aFzB.xhLht.cn
http://qYiOyy0o.xhLht.cn
http://VYBxf4Jg.xhLht.cn
http://mK7Zqu6Q.xhLht.cn
http://3LZQlh6v.xhLht.cn
http://FW3pb1Gl.xhLht.cn
http://ay0pXVjF.xhLht.cn
http://vKoLaflB.xhLht.cn
http://DpwHPImt.xhLht.cn
http://a2Kkuwr4.xhLht.cn
http://LTkR7Mom.xhLht.cn
http://IGZ1zaFQ.xhLht.cn
http://cMEX1XvO.xhLht.cn
http://e8aZTdYu.xhLht.cn
http://rUJ2S7uv.xhLht.cn
http://CD6kmyu9.xhLht.cn
http://diJE57ih.xhLht.cn
http://bcCPQe13.xhLht.cn
http://PmyzGx5E.xhLht.cn
http://7JFjnqt8.xhLht.cn
http://www.dtcms.com/a/383284.html

相关文章:

  • Redis持久化之AOF:日志记录的艺术,数据安全保障详解
  • 应急响应-事件处理学习大纲(1)
  • 基于「YOLO目标检测 + 多模态AI分析」的遥感影像目标检测分析系统(vue+flask+数据集+模型训练)
  • 【Android】Viewpager2实现无限轮播图
  • 【前端教程】从基础到优化:一个登录页面的完善过程
  • 一文入门python中的进程、线程和协程
  • Tempus Fugit: 3靶场
  • XXL-JOB-Admin后台手动执行任务传参过长被截断问题解决
  • 【AI推理部署】Docker篇02—Docker 快速入手
  • 【C语言描述】《数据结构和算法》一 绪论与时间、空间复杂度
  • 服务器 - 从一台服务器切换至另一台服务器(损失数十条访客记录)
  • 【Android】View 交互的事件处理机制
  • 软考中级信息安全与病毒防护知识点
  • 贪心算法应用:量子密钥路径选择问题详解
  • 【算法】【链表】160.相交链表--通俗讲解
  • v-model与.aync的区别
  • 淘宝返利app的前端性能优化:从资源加载到首屏渲染的全链路优化
  • 【LeetCode】38. 外观数列
  • ZYNQ7020 Bank划分
  • 【2025】Office核心组件Microsoft word,Excel,PowerPoint详细使用指南
  • ARM编译器的__inline和 __forceinline
  • Zookeeper介绍与部署(Linux)
  • [硬件电路-216]:电场是什么?只有正电荷或只有负电荷,能产生电场吗?
  • pthread_mutex_lock函数深度解析
  • 【记录】初赛复习 Day1
  • 深入理解跳表(Skip List):原理、实现与应用
  • SciKit-Learn 全面分析 20newsgroups 新闻组文本数据集(文本分类)
  • 使用 Neo4j 和 Ollama 在本地构建知识图谱
  • 【愚公系列】《人工智能70年》018-语音识别的历史性突破(剑桥语音的黄金十年)
  • Debezium日常分享系列之:MongoDB 新文档状态提取