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

};
相关推荐
糖果店的幽灵3 小时前
人已经用 WorkBuddy 找工作拿了面试,你还在一份份手工改简历
人工智能·面试·职场和发展·langgraph
imuliuliang4 小时前
关于数据结构在算法设计中的核心作用解析7
算法
2401_894915535 小时前
GEO 搜索优化完整源码从零部署:环境配置、集群搭建全流程
开发语言·python·tcp/ip·算法·unity
普通网友6 小时前
共识算法实现:从工作量证明到权益证明的演进
算法·区块链·共识算法
ldmd2847 小时前
地图生成算法(噪声篇-Perlin,Simplex,Value noise)
算法·go·地图生成
国科安芯8 小时前
FreeRTOS RISC-V 浮点上下文切换移植:在 IAR 工程中完整保存 FPU 寄存器
java·开发语言·单片机·嵌入式硬件·算法·系统架构·risc-v
小陈phd8 小时前
集成检索介绍
算法
小poop8 小时前
轮转数组:从暴力到最优,一题掌握算法复杂度分析
数据结构·算法·leetcode