注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
本帖最后由 匿名 于 2025-8-25 16:07 编辑
写题不易,兄弟姐妹求加米
地里的编辑器 super垃圾 求修复一下吧
时间:1小时10分钟
监控:录屏(允许查询语言语法),摄像头,麦克风,Photo ID
每天巴士计划出发时间为**有序**列表 `departure_times` ,给定当前时间 `current_time` ,问最上一次出发的巴士是在几分钟之前出发的。时间格式为字符串 `HH::MM` ,时间范围不超过24小时。一个例子 `departure_times = [12:30, 14:00, 19:55]` , `current_time = 14:30`,此时 `solution = 30` 分钟。其次,边界情况为 `departure_times[i] = current_time` 时,我们认为此巴士未出发,因此还得往回看上一辆巴士。若巴士未出发,则返回 `-1`。首先我们要做比较,因此直接转换成整型的分钟是最方便的。最简单的方法是顺序找到刚好 `<=`的,但是这样时间复杂度太高,因此我们直接用二分就可以。
手机没电了,你有一些电池,每块电池 `i` 能给你提供 `capacity[i]`分钟这里我用了deque来存每天可用的中心,不可用的话pop出去,减小时间复杂度,比用列表O(n^2)来找下一个空的好。
群山的高度为 `heights` ,只有当两座山的距离至少为 `gap` 时,才可以测量他们的高度之差。此时,求可测量的最小高度差。换句话说,最小化 `|heights[a] - heights[b]|` ,并满足条件 `|a - b| >= gap` 。暂时没想到好方法,于是先按照山头高度排序,然后找下一个最近的。
排序O(n log n),中间在大多数情况下应该是O(1),最坏的话是viewingGap很大但是数组已经排序?
不是最优的,这个方法在数组已经排序且gap大的时候会退化。 |