【LeetCode每日一题】1904. 你完成的完整对局数

给你两个字符串 startTimefinishTime ,均符合 "HH:MM" 格式,分别表示你 进入退出 游戏的确切时间,请计算在整个游戏会话期间,你完成的 完整对局的对局数

如果 finishTime 早于 startTime ,这表示你玩了个通宵(也就是从 startTime 到午夜,再从午夜到 finishTime)。

• 例如,如果 startTime = "05:20"finishTime = "05:59" ,这意味着你仅仅完成从 05:3005:45 这一个完整对局。而你没有完成从 05:1505:30 的完整对局,因为你是在对局开始后进入的游戏;同时,你也没有完成从 05:4506:00 的完整对局,因为你是在对局结束前退出的游戏。

假设你是从 startTime 进入游戏,并在 finishTime 退出游戏,请计算并返回你完成的 完整对局的对局数

思路如图:

代码实现:

js 复制代码
var numberOfRounds = function(loginTime, logoutTime) {
    let loginTimeArr = loginTime.split(':');
    // let login = loginTimeArr[0]*60+Math.ceil(loginTimeArr[1]/15)*15;

    // 字符串加数字会拼接起来
    // let login = loginTimeArr[0]*60+loginTimeArr[1]

    let login = loginTimeArr[0]*60+Number(loginTimeArr[1])
    let logoutTimeArr = logoutTime.split(':');
    let logout = logoutTimeArr[0]*60+Number(logoutTimeArr[1])

    if(logout<login){
        logout+=24*60;
    }
    login = login-loginTimeArr[1] + Math.ceil(loginTimeArr[1]/15)*15;
    logout = logout-logoutTimeArr[1] + Math.floor(logoutTimeArr[1]/15)*15;
    return (logout-login)/15>0?(logout-login)/15:0;

    // 遗漏掉了一种情况 就是 一个向上取整,一个向下取整,然后logout< login
    // "00:47" "00:57"  应该先比较后对时间进行处理

};
相关推荐
hk112411 分钟前
【NLP/PatternRec】2026年度语义鸿沟分析与模糊模式识别基准索引 (Benchmark Index)
算法·自然语言处理·数据集·知识图谱·模式识别
hetao173383712 分钟前
2025-12-31~2026-1-2 hetao1733837 的刷题笔记
c++·笔记·算法
yyy(十一月限定版)31 分钟前
算法——差分
算法
yyy(十一月限定版)31 分钟前
算法——模拟
算法
DeepVis Research34 分钟前
【Chaos/Neuro】2026年度混沌动力学仿真与机器遗忘算法基准索引 (Benchmark Index)
人工智能·算法·数据集·混沌工程·高性能计算
一起养小猫1 小时前
LeetCode100天Day9-无重复字符的最长子串与赎金信
java·开发语言·数据结构·leetcode
white-persist1 小时前
【内网运维】Netstat与Wireshark:内网运维溯源实战解析
运维·网络·数据结构·测试工具·算法·网络安全·wireshark
会员果汁1 小时前
7.设计模式-模板方法模式
算法·设计模式·模板方法模式
努力学算法的蒟蒻1 小时前
day52(1.2)——leetcode面试经典150
算法·leetcode·面试
java修仙传1 小时前
力扣hot100:字符串解码
算法·leetcode·职场和发展