zoukankan      html  css  js  c++  java
  • 252. Meeting Rooms

    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. Collections.sort. PriorityQueue()三种排序方式,都可以重写来实现。

    代码如下:

     1 /**
     2  * Definition for an interval.
     3  * public class Interval {
     4  *     int start;
     5  *     int end;
     6  *     Interval() { start = 0; end = 0; }
     7  *     Interval(int s, int e) { start = s; end = e; }
     8  * }
     9  */
    10 public class Solution {
    11     public boolean canAttendMeetings(Interval[] intervals) {
    12         if(intervals==null||intervals.length==0) return true;
    13         Comparator<Interval> comp = new Comparator<Interval>(){
    14             public int compare(Interval i1,Interval i2){
    15                 return i1.start-i2.start;
    16             }
    17         };
    18         Arrays.sort(intervals,comp);
    19         //int start  = intervals[0].start;
    20         int end = intervals[0].end;
    21         for(int i=1;i<intervals.length;i++){
    22             if(intervals[i].start-end<0) return false;
    23             else{
    24                 end = Math.max(end,intervals[i].end);
    25             }
    26         }
    27         return true;
    28     }
    29 }
    30 //the run time could include the time sorting and the compare, so the total run time could be O(nlongn), the sace complexity could be O(1);
  • 相关阅读:
    纯虚函数和抽象类
    继承和多态
    C++运算符重载
    构造函数
    C++对c中函数的拓展,函数重载
    c++ c的拓展
    linux终端下常用快捷键
    SEED-DVS6467_SDK的交叉编译环境搭建问题
    Linux内核编译
    Python简单爬虫记录
  • 原文地址:https://www.cnblogs.com/codeskiller/p/6362459.html
Copyright © 2011-2022 走看看