博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] Meeting Rooms
阅读量:6152 次
发布时间:2019-06-21

本文共 1262 字,大约阅读时间需要 4 分钟。

Problem Description:

Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],...] (si < ei), determine if a person could attend all meetings.

For example,

Given [[0, 30],[5, 10],[15, 20]],
return false


The idea is pretty simple: first we sort the intervals in the ascending order of start; then we check for the overlapping of each pair of neighboring intervals. If they do, then return false; after we finish all the checks and have not returned false, just return true.

Sorting takes O(nlogn) time and the overlapping checks take O(n) time, so this idea isO(nlogn) time in total.

The code is as follows.

1 class Solution { 2 public: 3     bool canAttendMeetings(vector
& intervals) { 4 sort(intervals.begin(), intervals.end(), compare); 5 int n = intervals.size(); 6 for (int i = 0; i < n - 1; i++) 7 if (overlap(intervals[i], intervals[i + 1])) 8 return false; 9 return true;10 }11 private:12 static bool compare(Interval& interval1, Interval& interval2) {13 return interval1.start < interval2.start;14 }15 bool overlap(Interval& interval1, Interval& interval2) {16 return interval1.end > interval2.start;17 } 18 };

 

转载地址:http://dizfa.baihongyu.com/

你可能感兴趣的文章
HDOJ 2020 绝对值排序
查看>>
HDOJ/HDU 2560 Buildings(嗯~水题)
查看>>
Maven编译时跳过Test
查看>>
Spring Boot 整合Spring Security 和Swagger2 遇到的问题小结
查看>>
[20170628]12C ORA-54032.txt
查看>>
除以2
查看>>
高可用集群原理解析
查看>>
Nginx配置URL转向tomcat
查看>>
极客Web前端开发资源大荟萃#001
查看>>
让div固定在某个位置
查看>>
Java开发环境Docker镜像
查看>>
从无到有,WebService Apache Axis2初步实践
查看>>
任务调度(一)——jdk自带的Timer
查看>>
UIKit框架(15)PCH头文件
查看>>
整理看到的好的文档
查看>>
Linux磁盘管理和文件系统管理
查看>>
linux运维人员的成功面试总结案例分享
查看>>
Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配
查看>>
命令查询每个文件文件数
查看>>
《跟阿铭学Linux》第8章 文档的压缩与打包:课后习题与答案
查看>>