Meeting Rooms

来源:互联网 发布:单片机按键程序 编辑:程序博客网 时间:2024/05/19 07:08

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.

思路:用Arrays.sort, 将Interal以end来排序,然后判断每一个end比后一个start大,就冲突。Arrays.sort,需要传入一个comparator,自己写一个class,comparator,override compare method。

class comparable是CompareTo method。一般用于this。compare。

/** * Definition for an interval. * public class Interval { *     int start; *     int end; *     Interval() { start = 0; end = 0; } *     Interval(int s, int e) { start = s; end = e; } * } */public class Solution {    public boolean canAttendMeetings(Interval[] intervals) {        if(intervals == null || intervals.length == 0) return true;        Arrays.sort(intervals, new Comparator<Interval>(){           @Override           public int compare(Interval a, Interval b){               return a.start - b.start;           }        });                for(int i=0; i<intervals.length-1; i++){            Interval b = intervals[i];            Interval e = intervals[i+1];            if(b.end > e.start){                return false;            }        }        return true;    }}


0 0
原创粉丝点击