Meeting Rooms

来源:互联网 发布:pkpm软件多少钱 编辑:程序博客网 时间:2024/05/19 05:31

此题现在看来至少有两种做法,一种,自己最开始想到的n平方的做法,另一种,先对数组以开始时间排序,然后比较结束时间,这样一次扫描即可,nlog(n)。

/** * 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) {        Arrays.sort(intervals, new Comparator<Interval>(){            public int compare(Interval i1, Interval i2){                return i1.start - i2.start;            }        });        int maxEnd = Integer.MIN_VALUE;        for (int i = 0; i < intervals.length; i++) {            if (intervals[i].start < maxEnd) {                return false;            }            maxEnd = Math.max(maxEnd, intervals[i].end);        }        return true;                // for (int i = 0; i < intervals.length; i++) {        //     //1 for (int j = j + 1; j < intervals.length; j++) {        //     for (int j = i + 1; j < intervals.length; j++) {        //         Interval current = intervals[i];        //         Interval next = intervals[j];        //         if (current.end <= next.start || current.start >= next.end) {        //             continue;        //         } else {        //             return false;        //         }        //     }            // }        // return true;    }}


0 0