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
.
1 /** 2 * Definition for an interval. 3 * public class Interval { 4 * public int start; 5 * public int end; 6 * public Interval() { start = 0; end = 0; } 7 * public Interval(int s, int e) { start = s; end = e; } 8 * } 9 */ 10 public class Solution { 11 public bool CanAttendMeetings(Interval[] intervals) { 12 if (intervals == null || intervals.Length < 2) return true; 13 14 var starts = new int[intervals.Length]; 15 var ends = new int[intervals.Length]; 16 17 for (int i = 0; i < intervals.Length; i++) 18 { 19 starts[i] = intervals[i].start; 20 ends[i] = intervals[i].end; 21 } 22 23 Array.Sort(starts); 24 Array.Sort(ends); 25 26 int rooms = 0, j = 0; 27 28 for (int i = 0; i < intervals.Length; i++) 29 { 30 if (starts[i] < ends[j]) 31 { 32 rooms++; 33 34 if (rooms > 1) break; 35 } 36 else 37 { 38 j++; 39 } 40 } 41 42 return rooms == 1; 43 } 44 }