当前位置: 首页 > news >正文

1904. 你完成的完整对局数

题目:

一款新的在线电子游戏在近期发布,在该电子游戏中,以 刻钟 为周期规划若干时长为 15 分钟 的游戏对局。这意味着,在 HH:00、HH:15、HH:30 和 HH:45 ,将会开始一个新的对局,其中 HH 用一个从 00 到 23 的整数表示。游戏中使用 24 小时制的时钟 ,所以一天中最早的时间是 00:00 ,最晚的时间是 23:59 。

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

例如,如果 startTime = “05:20” 且 finishTime = “05:59” ,这意味着你仅仅完成从 05:30 到 05:45 这一个完整对局。而你没有完成从 05:15 到 05:30 的完整对局,因为你是在对局开始后进入的游戏;同时,你也没有完成从 05:45 到 06:00 的完整对局,因为你是在对局结束前退出的游戏。
如果 finishTime 早于 startTime ,这表示你玩了个通宵(也就是从 startTime 到午夜,再从午夜到 finishTime)。

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

示例 1:

输入:startTime = “12:01”, finishTime = “12:44”
输出:1
解释:你完成了从 12:15 到 12:30 的一个完整对局。
你没有完成从 12:00 到 12:15 的完整对局,因为你是在对局开始后的 12:01 进入的游戏。
你没有完成从 12:30 到 12:45 的完整对局,因为你是在对局结束前的 12:44 退出的游戏。
示例 2:

输入:startTime = “20:00”, finishTime = “06:00”
输出:40
解释:你完成了从 20:00 到 00:00 的 16 个完整的对局,以及从 00:00 到 06:00 的 24 个完整的对局。
16 + 24 = 40
示例 3:

输入:startTime = “00:00”, finishTime = “23:59”
输出:95
解释:除最后一个小时你只完成了 3 个完整对局外,其余每个小时均完成了 4 场完整对局。

提示:

startTime 和 finishTime 的格式为 HH:MM
00 <= HH <= 23
00 <= MM <= 59
startTime 和 finishTime 不相等

java代码:

class Solution {public int numberOfRounds(String loginTime, String logoutTime) {int[] login = this.time(loginTime);int[] logout = this.time(logoutTime);this.ceiling(login);// 最近大,调整到最近一个开始的起点,顺时针调整时间this.floor(logout);// 最近小,调整到最近一个结束的终点,逆时针调整时间if (loginTime.compareTo(logoutTime) < 0) {// 同一天return Math.max(round24(login) - round24(logout), 0);//wa2} else {// 不同天return round24(login) + round00(logout);}}// 玩到0点能玩几局private int round24(int[] time) {return ((23 - time[0]) << 2) + this.round(time[1]);}// 从0点玩能玩几局private int round00(int[] time) {return (time[0] << 2) + 4 - this.round(time[1]);}// 玩到下一个整点能玩几局private int round(int minute) {if (minute == 0) {return 4;}if (minute == 15) {return 3;}if (minute == 30) {return 2;}return 1;}// 最近小private void floor(int[] time) {int minute = time[1];if (minute == 0 || minute == 15 || minute == 30 || minute == 45) {return;}if (minute < 15) {time[1] = 0;return;}if (minute < 30) {time[1] = 15;return;}if (minute < 45) {time[1] = 30;return;}time[1] = 45;}// 最近大private void ceiling(int[] time) {int minute = time[1];if (minute == 0 || minute == 15 || minute == 30 || minute == 45) {return;}if (minute < 15) {time[1] = 15;return;}if (minute < 30) {time[1] = 30;return;}if (minute < 45) {time[1] = 45;return;}time[1] = 0;time[0] += 1;// wa1!!!!}private int[] time(String time) {return new int[] { Integer.valueOf(time.substring(0, 2)), Integer.valueOf(time.substring(3, 5)) };}}

相关文章:

1904. 你完成的完整对局数

题目&#xff1a; 一款新的在线电子游戏在近期发布&#xff0c;在该电子游戏中&#xff0c;以 刻钟 为周期规划若干时长为 15 分钟 的游戏对局。这意味着&#xff0c;在 HH:00、HH:15、HH:30 和 HH:45 &#xff0c;将会开始一个新的对局&#xff0c;其中 HH 用一个从 00 到 23…...

Vue3:自定义指令以及简单的后台管理权限封装

目录 前言&#xff1a; 自定义指令介绍&#xff1a; 局部的自定义指令&#xff1a; 全局自定义指令&#xff1a; 讲讲后台管理权限管理&#xff1a; 前言&#xff1a; 说起这个自定义指令的使用场景&#xff0c;我第一反应就是&#xff0c;后台管理的权限管理&#xff0c;要…...

剑指 Offer 12. 矩阵中的路径

摘要 剑指 Offer 12. 矩阵中的路径 一、回溯算法解析 本问题是典型的矩阵搜索问题&#xff0c;可使用 深度优先搜索&#xff08;DFS&#xff09; 剪枝解决。 深度优先搜索&#xff1a; 可以理解为暴力法遍历矩阵中所有字符串可能性。DFS 通过递归&#xff0c;先朝一个方向搜…...

springboot+jersey+tomcat实现跨域方式上传文件到服务器

前言 在服务器上&#xff0c;当我们启动了tomcat&#xff0c;就可以以 http://ip地址:8080/文件路径/文件名 的方式&#xff0c;进行访问到我们服务器上处于tomcat的webapps文件夹下的文件 于是为了可以往上面加文件&#xff0c;我们有两种方式&#xff0c;一种就是直接复制文…...

【微信小程序】-- 常用视图容器类组件介绍 -- view、scroll-view和swiper(六)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#…...

猜数字游戏——C++

我们在有了一定的C基础了以后&#xff0c;简单的实现一个案例&#xff08;其实只要会while循环结构就行了&#xff09;&#xff0c;我们本章内容会实现猜数字游戏&#xff0c;大家有什么语法疑问可以看看我写的&#xff1a;C快速入门_染柒_GRQ的博客-CSDN博客&#xff0c;该博客…...

整数对最小和

题目描述 给定两个整数数组 array1 array2。数组元素按升序排列&#xff0c;假设从array1 、array2中分别取出一个元素可构成一对元素&#xff0c;现在需要取出K个元素并对取出的所有元素求和&#xff0c;计算和的最小值 注意事项 两对元素如果对应于array1 array2中的两个下…...

2023-2-22 -javaagent

周三&#xff0c;天气晴&#xff0c;7度 Java Agent Java Agent也叫作java探针&#xff0c;可以实现动态修改java字节码&#xff0c;完成额外的功能。在java类编译成字节码&#xff0c;在jvm执行之前&#xff0c;它可以读取修改字节码&#xff0c;以来完成额外的功能。 使用…...

JavaScript BOM操作

目录 前言 window 对象 location 对象 navigator 对象 screen 对象 history 对象 前言 BOM&#xff08;Browser Object Model&#xff09;指的是浏览器对象模型&#xff0c;它是 JavaScript 和浏览器之间的接口。通过 BOM&#xff0c;JavaScript 可以与浏览器窗口交互&…...

【机器学习 | 强基计划】开山篇 | 机器学习介绍及其类别和概念阐述

🤵‍♂️ 个人主页: @计算机魔术师 👨‍💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。 机器学习 | 强基计划系列 (一) 作者: 计算机魔术师 版本: 1.0 ( 2022.2.25) 注释:文章会不定时更新补充 文章目录 前言一、机器学习概览1.1 有监督学习和无监督学习1.1.…...

华为OD机试真题Java实现【合规数组】真题+解题思路+代码(20222023)

合规数组 题目 给定一个正整数数组 检查数组中是否存在满足规则的数组组合 规则: A = B + 2C 🔥🔥🔥🔥🔥👉👉👉👉👉👉 华为OD机试(Java)真题目录汇总 ## 输入 第一行输出数组的元素个数 接下来一行输出所有数组元素,用空格隔开 输出 如果存在满…...

BoostSearcher搜索引擎项目

BoostSearcher搜索引擎项目 1.BoostSearcher这个项目是什么&#xff1f; 答&#xff1a;一个为Boost文档建立索引的站内搜索引擎&#xff0c;简单的说就是一个类似于csdn站内文档搜索框。 项目展示&#xff1a; gitee:https://gitee.com/zxlfx/boost-search-engine-project …...

【模拟集成电路】频率综合器(Frequency Synthesizer,FS)设计

应用于无线局域网的频率综合器设计前言频率综合器简介各部分链接链接&#xff1a;前言 本文主要内容是对频率综合器或称为PLL 做出简单介绍&#xff0c;为课程设计部分章节内容&#xff0c;后需给出各部分的设计方案&#xff0c;以及测试结果。 频率综合器简介 无线收发系统中…...

实例8:机器人的空间描述和变换仿真

实例8&#xff1a;机器人的空间描述和变换仿真 实验目的 通过刚体与刚体的平动、转动基础知识的学习&#xff0c;熟悉位姿的描述通过Python编程实践&#xff0c;可视化学习坐标系的变换&#xff0c;熟悉空间变换 实验要求 通过python编程&#xff0c;输入一指定向量和对应的…...

网络 导航

目录内容链接网络网络参考文章&#xff1a;【网络】http请求 调试网络问题解决参考文章&#xff1a;【问题解决】网络 IP DNS解析网络问题解决参考文章&#xff1a;【问题解决】网络 TCP 规则 抓包网络问题解决参考文章&#xff1a;【问题解决】网络 Http请求 调试网络问题解决…...

Web Spider Ast-Hook 浏览器内存漫游-数据检索

文章目录一、资源下载二、通过npm安装anyproxy模块三、anyproxy的介绍以及基本使用1. anyproxy的功能介绍2. anyproxy的基本使用四、给浏览器挂代理五、实操极验demo案例总结提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、资源下载 Github&#x…...

计算机网络笔记、面试八股(二)——HTTP协议

本章目录2. HTTP协议2.1 HTTP协议简介2.2 HTTP协议的优点2.3 HTTP协议的缺点2.4 HTTP协议属于哪一层2.5 HTTP通信过程2.6 常见请求方法2.7 GET和POST的区别2.8 请求报文与响应报文2.8.1 HTTP请求报文2.8.2 HTTP响应报文2.9 响应状态码2.10 HTTP 1.0和1.1的区别2.10.1 长连接2.1…...

docker快速上手使用

文章目录一、docker概述1. 为什么需要docker2. 什么是docker3. docker和虚拟机的区别4. docker三要素二、docker安装1. 添加app源2. 安装docker社区版3. 更换国内docker镜像源三、docker基本使用方法1. 获取镜像2. 查看当前系统中的docker镜像3. 运行docker容器4. 查看当前存在…...

<c++> 类的构造函数与类的析构函数

文章目录类的构造函数什么是构造函数声明和定义构造函数如何使用构造函数默认构造函数类的析构函数什么是析构函数声明和定义析构函数小练习银行账户执行效果类的构造函数 什么是构造函数 Q&#xff1a;什么是类的构造函数 A&#xff1a;构造函数是类的一种特殊成员函数,不需…...

华为OD机试真题Java实现【玩牌高手】真题+解题思路+代码(20222023)

玩牌高手 给定一个长度为n的整型数组,表示一个选手在n轮内可选择的牌面分数。选手基于规则选牌, 请计算所有轮结束后其可以获得的最高总分数。 选择规则如下: 1、在每轮里选手可以选择获取该轮牌面,则其总分数加上该轮牌面分数,为其新的总分数。 2、选手也可不选择本轮…...

TL494电源芯片避坑指南:常见设计误区与调试技巧

TL494电源芯片避坑指南&#xff1a;常见设计误区与调试技巧 在电源设计领域&#xff0c;TL494作为一款经典PWM控制芯片&#xff0c;凭借其稳定性和灵活性赢得了工程师的青睐。但就像任何工具一样&#xff0c;只有真正理解它的特性才能发挥最大价值。本文将带您深入TL494的设计细…...

GME多模态向量模型实战部署:华为云ModelArts一键启动图文检索

GME多模态向量模型实战部署&#xff1a;华为云ModelArts一键启动图文检索 1. 引言&#xff1a;多模态检索的实用价值 想象一下&#xff0c;你正在管理一个大型数字资产库&#xff0c;里面有成千上万的图片和文档。当你想找"去年会议上讨论过的那张数据流程图"时&am…...

March7thAssistant:崩坏:星穹铁道企业级自动化解决方案

March7thAssistant&#xff1a;崩坏&#xff1a;星穹铁道企业级自动化解决方案 【免费下载链接】March7thAssistant 崩坏&#xff1a;星穹铁道全自动 三月七小助手 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 【核心价值定位】游戏工作室效率倍增引…...

从零部署到实战标注:SUSTechPOINTS 3D点云标注平台全流程指南

1. 为什么选择SUSTechPOINTS进行3D点云标注 在自动驾驶研发过程中&#xff0c;3D点云标注是个绕不开的苦差事。我最早用过不少商业标注工具&#xff0c;不是价格贵得离谱&#xff0c;就是功能残缺不全。直到去年团队接手一个校企合作项目&#xff0c;才发现南方科技大学开源的这…...

Pixel Script Temple 效果进阶:YOLOv11目标识别引导的精准构图像素画

Pixel Script Temple 效果进阶&#xff1a;YOLOv11目标识别引导的精准构图像素画 1. 效果亮点预览 当像素艺术遇上目标检测技术&#xff0c;会碰撞出怎样的火花&#xff1f;最新发布的YOLOv11模型与Pixel Script Temple的结合&#xff0c;让像素画创作进入了精准构图的新阶段…...

Linux服务器日志爆满?5个实用命令快速定位并清理大日志文件

Linux服务器日志爆满&#xff1f;5个实用命令快速定位并清理大日志文件 当服务器磁盘空间告急时&#xff0c;日志文件往往是罪魁祸首。作为系统管理员&#xff0c;我们需要快速定位问题并安全清理&#xff0c;避免服务中断。本文将分享5个核心命令的组合使用技巧&#xff0c;帮…...

Graphormer开源模型部署教程:3.7GB小模型+RTX4090一键启动分子建模服务

Graphormer开源模型部署教程&#xff1a;3.7GB小模型RTX4090一键启动分子建模服务 1. 项目介绍 Graphormer是一种基于纯Transformer架构的图神经网络模型&#xff0c;专门为分子图&#xff08;原子-键结构&#xff09;的全局结构建模与属性预测而设计。这个3.7GB的小模型在OG…...

BVH构建优化:四种分割算法在光线追踪中的性能对比

1. BVH分割算法基础概念 当你在玩3D游戏时&#xff0c;有没有想过为什么场景中的物体能够如此快速地渲染出来&#xff1f;这背后就离不开BVH&#xff08;边界体积层次结构&#xff09;技术的支持。简单来说&#xff0c;BVH就像是一个高效的"物体分类系统"&#xff0c…...

物理引擎核心原理拆解:GJK算法如何用Support函数取代SAT检测

物理引擎核心原理拆解&#xff1a;GJK算法如何用Support函数取代SAT检测 在实时物理模拟的世界里&#xff0c;碰撞检测算法的效率直接决定了虚拟世界的真实感与流畅度。当两个刚体在三维空间中高速运动时&#xff0c;传统分离轴定理&#xff08;SAT&#xff09;需要检测多达15组…...

【软考高项】需求跟踪矩阵在项目全生命周期中的关键作用与实践指南

1. 需求跟踪矩阵&#xff1a;项目管理的"导航仪" 刚入行做项目经理那会儿&#xff0c;我最怕的就是需求变更。明明已经确认好的需求&#xff0c;开发到一半客户突然说要改&#xff0c;整个团队手忙脚乱地翻文档、改代码、调测试用例&#xff0c;最后交付时还是漏了几…...