【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"  应该先比较后对时间进行处理

};
相关推荐
颜酱1 小时前
二叉树分解问题思路解题模式
javascript·后端·算法
qianpeng8972 小时前
水声匹配场定位原理及实验
算法
董董灿是个攻城狮14 小时前
AI视觉连载8:传统 CV 之边缘检测
算法
AI软著研究员21 小时前
程序员必看:软著不是“面子工程”,是代码的“法律保险”
算法
FunnySaltyFish21 小时前
什么?Compose 把 GapBuffer 换成了 LinkBuffer?
算法·kotlin·android jetpack
颜酱1 天前
理解二叉树最近公共祖先(LCA):从基础到变种解析
javascript·后端·算法
地平线开发者2 天前
SparseDrive 模型导出与性能优化实战
算法·自动驾驶
董董灿是个攻城狮2 天前
大模型连载2:初步认识 tokenizer 的过程
算法
地平线开发者2 天前
地平线 VP 接口工程实践(一):hbVPRoiResize 接口功能、使用约束与典型问题总结
算法·自动驾驶
罗西的思考2 天前
AI Agent框架探秘:拆解 OpenHands(10)--- Runtime
人工智能·算法·机器学习