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

Leetcode尊享面试100题-252.会议室

给定一个会议时间安排的数组 intervals ,每个会议时间都会包括开始和结束的时间 intervals[i] = [starti, endi] ,请你判断一个人是否能够参加这里面的全部会议。

示例 1:

输入:intervals = [[0,30],[5,10],[15,20]]
输出:false

示例 2:

输入:intervals = [[7,10],[2,4]]
输出:true

提示:

  • 0 <= intervals.length <= 104
  • intervals[i].length == 2
  • 0 <= starti < endi <= 106

这个系列是会员题,题目很简单,直接上代码,看不懂的直接私信或者评论,看到后第一时间解答

class Solution {
    /**这个题我理解就是看看这些区间有没有交集,相对比较简单 */
    public boolean canAttendMeetings(int[][] intervals) {
        /**如果没有会议或者只有一个1会议,那就可以参加啊 */
        if(intervals == null || intervals.length < 2) {
            return true;
        }
        /**先排个序,按照开始时间早的排前面,开始时间一样的结束时间早的排前面 */
        Arrays.sort(intervals, (a,b)->a[0]==b[0]? a[1] - b[1] : a[0] - b[0]);
        /**用一个变量lastMeetingEnd用来记录上个会议结束的时间 */
        int lastMeetingEnd = intervals[0][1];
        for(int i = 1; i < intervals.length; i++) {
            /**如果当前会议开始时间小于上个会议的结束时间就参加不了当前会议 */
            if(lastMeetingEnd > intervals[i][0]) {
                return false;
            }
            /**能参加当前会议,就看看当前会议时间是不是大于下个会议的开始时间(下次循环处理,这里先设置lastMeetingEnd) */
            lastMeetingEnd = intervals[i][1];
        }
        return true;
    }
}


http://www.kler.cn/a/322860.html

相关文章:

  • Docker:查看镜像里的文件
  • React中组件通信的几种方式
  • vue3点击按钮el-dialog对话框不显示问题
  • Ubuntu VNC Session启动chromium和firefox报错
  • Codeforces Round 987 (Div. 2) ABCD
  • 2024-11-16 串的存储结构
  • 产品推介——SOP4 随机相位可控硅光耦KLM305X
  • Docker Init 实战详解:从入门到精通
  • 前端练习总结(1)
  • 选择、冒泡、插入排序
  • 【Redis 源码】2项目结构说明
  • c语言中的杨氏矩阵的介绍以及元素查找的方法
  • Spring Boot 中实现任务后台处理的几种常见方式
  • 【笔记】自动驾驶预测与决策规划_Part4_时空联合规划
  • 数据结构及基本算法
  • LeetCode 2266. 统计打字方案数
  • UE4_Niagara基础实例—使用自定义模块二
  • DataLight(V1.4.5) 版本更新,新增 Ranger、Solr
  • Sony IMX334LQR-C 1/1.8寸 8.42 M像素
  • 机器学习笔记 - week6 -(十一、机器学习系统的设计)
  • 鼎阳加油-IOC关键技术问题的解决记
  • 信息安全工程师(24)网络安全体系建设原则与安全策略
  • MacOS开发环境配置与应用开发
  • 【JAVA 笔记】06 车辆属性抽象类
  • 【libp2p——NAT】
  • 优化|基于深度学习的不动点算子优化的热启动方法