博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Merge Intervals@LeetCode
阅读量:6833 次
发布时间:2019-06-26

本文共 975 字,大约阅读时间需要 3 分钟。

这也是一题我有点不太能理解为什么可以标为hard的题目。解法其实很直观,就是先对interval进行排序,然后遍历一遍。这里需要注意的点有两个:

  1. interval进行排序需要构造一个比较器。

  2. 在遍历过程中,如果结果集合为空或者当前interval与结果集合中的最后一个interval不重叠,那么就直接将当前interval直接加入到结果集合中;如果发生了重叠,那么将结果集合的最后一个interval的右端点改为当前interval的右端点。

实现代码:

javapublic class Solution {    public List
merge(List
intervals) { List
result = new ArrayList
(); Comparator
comparator = new Comparator
() { @Override public int compare(Interval o1, Interval o2) { if (o1.start == o2.start) { return o1.end - o2.end; } return o1.start - o2.start; } }; Collections.sort(intervals, comparator); for (Interval interval : intervals) { int last = result.size(); if (last == 0 || result.get(last - 1).end < interval.start) { Interval newInterval = new Interval(interval.start, interval.end); result.add(newInterval); } else { result.get(last - 1).end = Math.max(interval.end, result.get(last - 1).end); } } return result; }}

转载地址:http://xqnkl.baihongyu.com/

你可能感兴趣的文章
谈一谈SQL Server中的执行计划缓存(下)
查看>>
centos系统实现hadoop安装配置《二》
查看>>
linux JVM内存分析(二) 实战JVM调优
查看>>
(三)spring cloud微服务分布式云架构 - Spring Cloud集成项目简介
查看>>
scrapy爬虫时HTTPConnectionPool(host:XX)Max retries exceeded with url 解决方法
查看>>
随机漫步
查看>>
解决vue在ie中不能使用的问题
查看>>
如何使用 CSS Grid 快速而又灵活的布局
查看>>
scrolltop的兼容问题
查看>>
磁盘格式化,磁盘挂载,手动增加swap空间
查看>>
2.23/2.24/2.25 find命令
查看>>
4.26 Alias 4.27-29 php编译安装 4.30 编译安装Nginx
查看>>
python函数相关
查看>>
芝麻HTTP:Python爬虫入门之Urllib库的高级用法
查看>>
nginx.conf配置文件的参数详解
查看>>
航空订票系统
查看>>
Zabbix 通过 SNMP 监控设备
查看>>
CRM和ERP的Sales Organization的映射关系
查看>>
Ubuntu12.04不能调节屏幕亮度的办法
查看>>
【Centos】在nginx服务器中配置php和mysql
查看>>