首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
有礼貌的山羊追赶太阳
华南师范大学 Java
发布于广东
关注
已关注
取消关注
哥们,牛客样例还是太不全面了,我自创了个样例,你的代码是过不了的。
1?:11
18:59
按理来说这种最小时间应该是18:11 到18:59的时间差,即48分钟。但是你的代码没有考虑这种情况,导致结果为1分钟。
@牛客45421642号:
题解 | #ranko的手表#
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息/**思路:1、最小间隔时间、最大间隔时间2、第一次的小时、分钟,每一位单独处理3、第二次小时分钟,每一位单独处理4、注意各种特殊情况的处理,比如小时第二位,第一次比第二次大,就要将第一位+15、如果分钟,第一次比第二次大,就要将小时往前推,前提是第一次和第二次在所有值填充完了以后,小时相同6、最大相差,直接去各自的极值,不用考虑各种重合情况 */public class Main { public static void main(String[] args) throws IOException{ BufferedReader buff = new BufferedReader(new InputStreamReader(System.in)); //获取输入事件 String time1 = buff.readLine(); String time2 = buff.readLine(); int min = Math.max(1, min(time1, time2)); int max = max(time1,time2); System.out.println(min + " " + max); } //找到两个时间最小差距 public static int min(String time1,String time2) { //取最大时间 //取时间1的时分 String hour1 = time1.split(":")[0]; String minute1 = time1.split(":")[1]; //取最大时间 //获取时间2的时分 String hour2 = time2.split(":")[0]; String minute2 = time2.split(":")[1]; //第一行小时如果是? if(hour1.charAt(0) == '?' && hour2.charAt(0) != '?') { hour1 = hour2.charAt(0) + "" + hour1.charAt(1); } if(hour1.charAt(0) == '?' && hour2.charAt(0) == '?') { if(hour1.charAt(1)>hour2.charAt(1)) { hour1 = "0" + hour1.charAt(1); hour2 = "1" + hour2.charAt(1); }else { hour1 = "0" + hour1.charAt(1); hour2 = "0" + hour2.charAt(1); } } if(hour1.charAt(1) == '?') { if(hour1.charAt(0) == '2') { hour1 = hour1.charAt(0) + "3"; }else { hour1 = hour1.charAt(0) + "9"; } } if(minute1.charAt(0) == '?') { minute1 = "5" + minute1.charAt(1); } if(minute1.charAt(1) == '?') { minute1 = minute1.charAt(0) + "9"; } if(hour2.charAt(0) == '?') { if(hour1.charAt(1)> hour2.charAt(1)) { hour2 = (Integer.parseInt(hour1.charAt(0) + "") + 1) + "" + hour2.charAt(1); } } if(hour2.charAt(1) == '?') { if(hour1.charAt(0) == hour2.charAt(0)) { hour2 = hour2.charAt(0) + "" + hour1.charAt(1); }else { hour2 = hour2.charAt(0) + "0"; } } if(minute2.charAt(0) == '?') { if(hour1.equals(hour2)) { minute2 = minute1.charAt(0) + "" + minute2.charAt(1); }else { minute2 = "0" + minute2.charAt(1); } } if(minute2.charAt(1) == '?') { if(hour1.equals(hour2) && (minute1.charAt(0) == minute2.charAt(0))) { minute2 = minute2.charAt(0) + "" + minute1.charAt(1); }else { minute2 = minute2.charAt(0) + "0"; } } //小时相互减 int resultH = Integer.parseInt(hour2) - Integer.parseInt(hour1); //分钟 if(Integer.parseInt(minute2) < Integer.parseInt(minute1)) { if(resultH == 0) { resultH += 1; } } int minute = Integer.parseInt(minute2) - Integer.parseInt(minute1); return resultH*60 + minute; } //找到最大差距 public static int max(String time1,String time2) { //取最大时间 //取时间1的时分 String hour1 = time1.split(":")[0]; String minute1 = time1.split(":")[1]; //取最大时间 //获取时间2的时分 String hour2 = time2.split(":")[0]; String minute2 = time2.split(":")[1]; //第一位小时如果是? if(hour1.charAt(0) == '?') { hour1 = "0" + hour1.charAt(1); } if(hour1.charAt(1) == '?') { hour1 = hour1.charAt(0) + "0"; } if(minute1.charAt(0) == '?') { minute1 = "0" + minute1.charAt(1); } if(minute1.charAt(1) == '?') { minute1 = minute1.charAt(0) + "0"; } //第二行的时间 if(hour2.charAt(0) == '?') { hour2 = "2" + hour2.charAt(1); } if(hour2.charAt(1) == '?') { if(hour2.charAt(0) == '2') { hour2 = hour2.charAt(0) + "3"; }else { hour2 = hour2.charAt(0) + "9"; } } if(minute2.charAt(0) == '?') { minute2 = "5" + minute2.charAt(1); } if(minute2.charAt(1) == '?') { minute2 = minute2.charAt(0) + "9"; } //小时相互减 int resultH = Integer.parseInt(hour2) - Integer.parseInt(hour1); //分钟 int minute = Integer.parseInt(minute2) - Integer.parseInt(minute1); return resultH*60 + minute; }}
点赞 0
评论 1
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
01-30 15:27
江南大学 Java
智识神工NPCTEK - Java - 实习一面
自我介绍了解过什么排序算法,说一下快速排序、堆排序的思路步骤面向对象的三大特性位图是什么?它的使用场景是什么?数据库中索引用的什么结构?红黑树和B+树在插入、搜索时候的区别红黑树的节点规则都有哪些?抽奖系统中异步解耦是用于什么场景,并且是怎么做的?微服务判题系统中提到用了安全沙箱,是怎么创建的?如果是高并发的情况,那么安全沙箱是如何抵挡住高并发压力的?策略模式是什么,它在项目使用中是如何体现的?平时用 ai 都是用的哪些大模型,这些大模型都有什么区别?
点赞
评论
收藏
分享
01-30 15:15
西安电子科技大学 Java
面试官提问:为什么表单提交不会出现跨域
这是之前面试的时候面试官提问的一道面试题。具体题目是:为什么表单提交不会出现跨域,而使用 Ajax 发送 post 请求时却会出现跨域的情况。那什么情况下会出现跨域:协议 + 域名 + 端口 三者只要有一个不一样,就会出现跨域。那为什么表单能够跨域发送请求,而 Ajax 却不能发送跨域请求归根结底:跨域是为了阻止用户读取到另一个域名下的内容而 Ajax 可以获取响应,但浏览器认为这不安全,所以拦截了响应但是表单并不会获取新的内容,所以可以发起跨域请求。前者是发送跨域请求给到后端,并不去接收服务器返回的信息后者是发送跨域请求给到后端,并接收服务器返回的信息那该如何解决跨域#方法一:使用 JSON...
我发现了面试通关密码
点赞
评论
收藏
分享
01-01 10:16
深圳大学 Java
字节 财经 二面
二面的体验非常好,不知道面试官手下留情了还是什么,基本上都答出来了,算法也是一遍直接过,手撕了30min这样
点赞
评论
收藏
分享
01-23 12:11
湖南城市学院 Java
老铁们,27届想找java实习,这简历行不
求大佬给些建议😘😘😘
King987:
待优化的地方还是挺多的,可以参考一下我的作品优化一下,优化不好的话也可以找我
点赞
评论
收藏
分享
今天 14:55
已编辑
Stanford University 算法工程师
国产半导体设备加速崛起
据《日经亚洲》报道,日本研究机构Global Net数据显示,2025年全球芯片设备厂商前20强中有3家中国企业,较2022年美国出口限制前新增2家。这三家公司分别是北方华创,中微公司和上海微电子。值得注意的是,若将范围扩大至排名前30名的企业,还将新增两家中国企业:盛美上海和华海清科.中微、上海微、盛美上海、华海清科上榜TOP30这一变化既展现了国产设备凸显群体崛起态势,也印证了美国出口管制未达遏制目的,反而倒逼中国半导体供应链自主化加速,激发了本土产业韧性。具体排名中,北方华创的排名从2022年的第八位上升至2025年的第五位,位列ASML、Applied Materials、Lam Re...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
AI 应用开发学习全景路线图
1.6W
2
...
大厂到底想要什么样的人???
4941
3
...
害怕被嘲笑就不去做了吗?
4331
4
...
2026的你,应该知道哪些AI面试题?
2132
5
...
面试官视角聊聊,AI大模型产品到底是做什么的?
1825
6
...
我用AI做了个小游戏,来玩!
1468
7
...
测试/测开方向刷题经验分享
1416
8
...
后端 offer选择
983
9
...
字节财经业务一面凉经
950
10
...
如何用AI快速制作Web版Galgame
776
创作者周榜
更多
正在热议
更多
#
在大厂上班是一种什么样的体验
#
4300次浏览
64人参与
#
找工作的破防时刻
#
251512次浏览
1951人参与
#
程序员找工作至少要刷多少题?
#
8847次浏览
143人参与
#
你投递的公司有几家约面了?
#
157746次浏览
995人参与
#
论秋招对个人心气的改变
#
5648次浏览
104人参与
#
我的AI电子员工
#
26075次浏览
159人参与
#
OPPO求职进展汇总
#
770800次浏览
5396人参与
#
为了减少AI幻觉,你注入过哪些设定?
#
1704次浏览
53人参与
#
刚入职的你踩过哪些坑
#
4044次浏览
89人参与
#
程序员能干到多少岁?
#
5578次浏览
89人参与
#
一张图晒一下你的AI员工
#
2776次浏览
61人参与
#
牛客AI体验站
#
3036次浏览
83人参与
#
我现在比当时_,你想录用我吗
#
3516次浏览
63人参与
#
想辞职但是不敢的原因
#
20118次浏览
88人参与
#
ai智能作图
#
624589次浏览
5627人参与
#
AI Coding的使用心得
#
2195次浏览
57人参与
#
关于春招/暑期实习,你想知道哪些信息?
#
3724次浏览
82人参与
#
牛客租房专区
#
146654次浏览
1463人参与
#
晒晒你司的新年福利
#
3818次浏览
67人参与
#
虾皮求职进展汇总
#
373295次浏览
2792人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务