持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第27天,点击查看活动详情
前言
小白算法比较菜,希望能激励我每日更新,从leetcode第一题开始,2022年目标300题,记录从0到1的全过程!!
力扣第 316 场周赛-力扣
力扣第 316 场周赛-力扣
这次第三题就是hard,想破头也没想出来。直接掉大分啊!当时看第二题太复杂就先去看第三题了,早知道先把第二题做了,说不定还能不掉分。。
第315双周赛的排名
第314双周赛的排名
第313周赛的排名
2446. 判断两个事件是否存在冲突
给你两个字符串数组 event1 和 event2 ,表示发生在同一天的两个闭区间时间段事件,其中:
event1 = [startTime1, endTime1] 且 event2 = [startTime2, endTime2] 事件的时间为有效的 24 小时制且按 HH:MM 格式给出。
当两个事件存在某个非空的交集时(即,某些时刻是两个事件都包含的),则认为出现 冲突 。
如果两个事件之间存在冲突,返回 true ;否则,返回 false 。
示例 1
- 输入:event1 = ["01:15","02:00"], event2 = ["02:00","03:00"]
- 输出:true
- 解释:两个事件在 2:00 出现交集。
示例 2
- 输入:event1 = ["01:00","02:00"], event2 = ["01:20","03:00"]
- 输出:true
- 解释:两个事件的交集从 01:20 开始,到 02:00 结束。
示例 3
- 输入:event1 = ["10:00","11:00"], event2 = ["14:00","15:00"]
- 输出:false
- 解释:两个事件不存在交集。
提示
- evnet1.length == event2.length == 2.
- event1[i].length == event2[i].length == 5
- startTime1 <= endTime1
- startTime2 <= endTime2
- 所有事件的时间都按照 HH:MM 格式给出
代码
比较时间,好像在前两次的一个周赛里面出现过,并没有什么复杂的,拆分好数据之后,比较时分就可以了。
class Solution {
public boolean haveConflict(String[] event1, String[] event2) {
String star1 = event1[0];
String end1 = event1[1];
String star2 = event2[0];
String end2 = event2[1];
if (isPre(end1, star2) || isPre(end2, star1)) {
return false;
}
return true;
}
private boolean isPre(String time1, String time2) { //判断time1是否在time2之前
String[] time1S = time1.split(":");
String[] time2S = time2.split(":");
int hour1 = Integer.parseInt(time1S[0]);
int m1 = Integer.parseInt(time1S[1]);
int hour2 = Integer.parseInt(time2S[0]);
int m2 = Integer.parseInt(time2S[1]);
return hour1 * 100 + m1 < hour2 * 100 + m2;
}
}
3.结束
又是掉分的一场周赛,第三题就不会了。现在居然是个二题选手了,太难过了,怎么感觉越来有越菜了。gogogo,刷题刷题,每天一道,三年1000道!!!!