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

};
相关推荐
luckycoding14 分钟前
1424. 对角线遍历 II
算法·leetcode·职场和发展
CoovallyAIHub19 分钟前
基于ICR损失与SVMLP数据集:小目标检测新突破,车牌检测准确率显著提升
深度学习·算法·计算机视觉
鲸鱼240119 分钟前
贝叶斯笔记
人工智能·算法·机器学习
刃神太酷啦1 小时前
Linux 常用指令全解析:从基础操作到系统管理(1w字精简版)----《Hello Linux!》(2)
linux·运维·服务器·c语言·c++·算法·leetcode
努力找工作的OMArmy1 小时前
力扣498 对角线遍历
算法·leetcode·职场和发展
不知名。。。。。。。。3 小时前
算法 ---哈希表
数据结构·算法·散列表
yi.Ist4 小时前
图论——Floyd算法
c++·算法·图论·floyd
让我们一起加油好吗10 小时前
【基础算法】初识搜索:递归型枚举与回溯剪枝
c++·算法·剪枝·回溯·洛谷·搜索
stbomei12 小时前
基于 MATLAB 的信号处理实战:滤波、傅里叶变换与频谱分析
算法·matlab·信号处理
2401_8762213412 小时前
Reachability Query(Union-Find)
c++·算法