LeetCode 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.

 


 

题目标签:sort

  这道题目给了我们一个array的会议时间,让我们判断是否能够参加所有的会议。每一个会议时间都有start 和 end。只要把array 重新排序一下,按照start从小到大。之后遍历每一个会议时间,如果这个会议时间的end 大于 下一个会议时间的start,就判断false。

起初自己写了一个n^n 的sort,通过后发现速度贼慢,只好重新研究其他人的做法。可以利用Arrays.sort 来直接sort我们的intervals, 但是需要结合comparator。之前都有用Arrays.sort, 但是对于这样的object array就没想到,而且也不会用comparator。顺便稍微调查了一下,Arrays.sort 是用两种排序方法, 1- 快速排序, 2-优化的合并排序。 快速排序主要运用于基本类型(int, short...), 合并排序用于对象类型。两种排序都是O(n logn)。对于object的Arrays.sort,需要override一个compare function, a - b就是ascending排序,从小到大; b - a 就是descending排序。

 

Java Solution:

Runtime beats 75.89% 

完成日期:06/24/2017

关键词:Sort

关键点:如何用Arrays.sort 和 Comparator

 


 

 

 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 {
12     public boolean canAttendMeetings(Interval[] intervals) 
13     {
14         // step 1: sort the intervals
15         Arrays.sort(intervals, new Comparator<Interval>(){
16             public int compare(Interval a, Interval b)
17             {
18                 return a.start - b.start;
19             }
20         });
21         
22         // step 2: iterate intervals to check each end is <= next start
23         for(int i=0; i<intervals.length-1; i++)
24         {
25             if(i+1 <intervals.length)
26             {
27                 if(intervals[i].start == intervals[i+1].start)
28                     return false;
29                 if(intervals[i].end > intervals[i+1].start)
30                     return false;
31             }
32         }
33         
34         return true;
35     }
36 }

 

参考资料: 

* http://www.programcreek.com/2014/07/leetcode-meeting-rooms-java/
* http://blog.csdn.net/lian47810925/article/details/4689323
* http://www.importnew.com/8952.html

 

LeetCode 算法题目列表 - LeetCode Algorithms Questions List

转载于:https://www.cnblogs.com/jimmycheng/p/7076019.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468316.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android ANR视角InputDispatcher

作者&#xff1a;王小二前言有好多人向我咨询过Input ANR问题&#xff0c;说实话&#xff0c;我也是一直无法彻底的解释清楚&#xff0c;我下决心要彻底搞懂这块知识点。话不多说先上图一个event的正常流程InputReader线程1.InputReader线程一旦发现有新的event&#xff0c;判断…

java redis并发问题_Redis 高并发问题,及解决方案!

(一)redis技术的使用&#xff1a;redis真的是一个很好的技术&#xff0c;它可以很好的在一定程度上解决网站一瞬间的并发量&#xff0c;例如商品抢购秒杀等活动。。。redis之所以能解决高并发的原因是它可以直接访问内存&#xff0c;而以往我们用的是数据库(硬盘),提高了访问效…

oracle中scott/tiger、sys、SYSDBA、system都是什么用

oracle中scott/tiger、sys、SYSDBA、system都是什么用点我&#xff0c;点我~ 点我&#xff0c;点我&#xff0c;Oracle&#xff0c;用户和角色说明~ 转载于:https://www.cnblogs.com/tangshengwei/p/7080956.html

python 类似wordpress_python,_python 有没有类似WordPress的这种库?,python - phpStudy

python 有没有类似WordPress的这种库&#xff1f; 例如&#xff1a;WordPress博客这种插件Eyes Only: User Access Shortcode https://www.wpdaxue.com/eyes-... /** * WordPress 根据用户名/用户角色/能力/是否登录等隐藏部分文章内容 * https://www.wpdaxue.com/eyes-only-us…

频繁跳槽,这谁顶得住~

最近应该是校招的时候&#xff0c;相信很多人都面临择业的问题&#xff0c;正念同学的文章&#xff0c;记录了自己一个嵌入式工程师这几年找工作换工作的经历。加我好友的都知道&#xff0c;我这几天发了一个朋友圈&#xff0c;说不要乱跳槽&#xff0c;我想表达的是&#xff0…

java script object_javascript Object与Array用法

引用类型&#xff1a;引用类型是一种数据结构&#xff0c;用于将数据和功能组织在一起。引用类型的值是引用类型的一个实例。一、ObjectECMAScript中的对象其实就是一组数据和功能的结合。Object类型其实是所有它的实例的基础&#xff0c;换句话说&#xff0c;Object类型所有具…

王立平--poser

Poser是Metacreations公司推出的一款三维动物、人体造型和三维人体动画制作的极品软件。用过Poser2与Poser3的朋友一定能感受到Poser的人体设计和动画制作是那么的轻松自如&#xff0c;制作出的作品又是那么生动。而今Poser更能为你的三维人体造型增添发型、衣服、饰品等装饰。…

Linux内核编程广泛使用的前向声明(Forward Declaration)

前向声明编程定律先强调一点&#xff1a;在一切可能的场景&#xff0c;尽可能地使用前向声明(Forward Declaration)。这符合信息隐蔽的原则。一个例子regmap那么前向声明究竟是个什么鬼&#xff1f;在内核写代码和看代码的童鞋&#xff0c;经常发现Linux内核里面充斥着这样的代…

python文字游戏 生成数字菜单_python自学日记5——文字游戏

学习python时记录自己或观察别人从错误到正确的思路远比只看正确答案效果好——傅查理 1.判断单词中是否有字母“e" 写一个函数has_no_e,当给定的单词不包含字母‘e时&#xff0c;返回True 刚开始我写的是这样的&#xff1a; def has_no_e(word): for letter in word: if …

Top 10 Project Management Software

转载于:https://www.cnblogs.com/shy1766IT/p/7082910.html

java 二维数组 floyd_Floyd算法(一)之 C语言详解

本章介绍弗洛伊德算法。和以往一样&#xff0c;本文会先对弗洛伊德算法的理论论知识进行介绍&#xff0c;然后给出C语言的实现。后续再分别给出C和Java版本的实现。弗洛伊德算法介绍和Dijkstra算法一样&#xff0c;弗洛伊德(Floyd)算法也是一种用于寻找给定的加权图中顶点间最短…

南拳北腿

昨晚&#xff0c;熬夜看了篮球综艺节目&#xff0c;《我要打篮球》&#xff0c;实在话&#xff0c;我是林书豪的球迷&#xff0c;所以我肯定是希望林书豪球队能获胜&#xff0c;最后也如我所愿&#xff0c;两场3v3&#xff0c;电光飞侠都是在处于被动的情况下完成自我救赎&…

[systemd]systemd使用

转自&#xff1a;https://blog.linuxeye.cn/400.html 转载于:https://www.cnblogs.com/aaronLinux/p/7084294.html

怎么改java的gre_GRE怎样完成60天小白到大神的蜕变?

首先声明&#xff0c;我不是什么英语大牛&#xff0c;也不是什么写作能手&#xff0c;普通工科女生一名&#xff0c;和大部分G友基础差不多。但可能是鉴于比较正确的备考方法&#xff0c;Toefl和GRE都考到了满意的成绩。身边也有朋友因为方法不当&#xff0c;准备的时间较长却也…

C语言const 关键字

面试的时候&#xff0c;应该有遇到const相关的&#xff0c;毕竟也是学习中的一个知识点&#xff0c;看完我们这篇文章&#xff0c;我觉得你应该可以在面试中完完全全的吃透const这个点。const和变量const uint32_t hello 3;编译的时候&#xff0c;编译器就知道了 hello 这个变…

pandas 第一行_Pandas数据预处理相关经验

在这里记录一些平常用的pandas操作以供参考。学习相关操作的最好方法还是找官方的文档最好&#xff0c;否则就会产生百度1小时&#xff0c;查文档3分钟的尴尬处境&#xff0c;之前为了找python里类似 in 的操作搜了半天资料也没找到&#xff0c;结果文档里就是 isin 函数就好了…

单机 amp; 弱联网手游 防破解、金币改动 简单措施

单机 &amp; 弱联网手游 防破解、金币改动 简单措施 手游经常使用破解方法 对于一个弱联网或者单机游戏&#xff0c;能够从下面方面去破解&#xff1a; 1、找得到存档文件的&#xff0c;直接破解改动存档文件。 2、找不到存档文件&#xff0c;就在游戏执行时借助一些软件来改…

java中自定义异常的_java中的自定义异常(标准)

自定义“无效名字异常”1.编译时异常&#xff0c;直接继承Exception2.运行时异常&#xff0c;直接继承RuntimeExceptionpublic class IllegalNameException extends Exception{//编译时异常//public class IllegalNameException extends RuntimeException{//运行时异常public I…

Linux 内核通知链和例程代码

概念大多数内核子系统都是相互独立的&#xff0c;因此某个子系统可能对其它子系统产生的事件感兴趣。为了满足这个需求&#xff0c;也即是让某个子系统在发生某个事件时通知其它的子系统&#xff0c;Linux内核提供了通知链的机制。通知链表只能够在内核的子系统之间使用&#x…

faster rcnn resnet_RCNN系列、Fast-RCNN、Faster-RCNN、R-FCN检测模型对比

RCNN系列、Fast-RCNN、Faster-RCNN、R-FCN检测模型对比一&#xff0e;RCNN问题一&#xff1a;速度经典的目标检测算法使用滑动窗法依次判断所有可能的区域。本文则预先提取一系列较可能是物体的候选区域&#xff0c;之后仅在这些候选区域上提取特征&#xff0c;进行判断。问题二…