leetcode — merge-intervals
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* Source : https://oj.leetcode.com/problems/merge-intervals/
*
*
* Given a collection of intervals, merge all overlapping intervals.
*
* For example,
* Given [1,3],[2,6],[8,10],[15,18],
* return [1,6],[8,10],[15,18].
*
*
*/
public class MergeIntevals {
/**
*
* 合并重叠的数组
*
* 先对数组按照左边界排序,然后依次合并相邻的数组
*
* @param list
* @return
*/
public List<IntervalArray> merge (List<IntervalArray> list) {
if (list.size() <= 1) {
return list;
}
Collections.sort(list);
List<IntervalArray> result = new ArrayList<IntervalArray>();
for (int i = 0; i < list.size(); i++) {
if (i > 0 && list.get(i - 1).end >= list.get(i).start) {
list.get(i-1).end = Math.max(list.get(i).end, list.get(i - 1).end);
} else {
result.add(list.get(i));
}
}
return result;
}
private static class IntervalArray implements Comparable<IntervalArray>{
int start;
int end;
public IntervalArray(int start, int end) {
this.start = start;
this.end = end;
}
@Override
public int compareTo(IntervalArray o) {
return this.start - o.start;
}
@Override
public String toString() {
return "[" + start + ","+ end +']';
}
}
public static void main(String[] args) {
MergeIntevals mergeIntevals = new MergeIntevals();
List<IntervalArray> list = new ArrayList<IntervalArray>();
list.add(new IntervalArray(2, 6));
list.add(new IntervalArray(8, 10));
list.add(new IntervalArray(15, 18));
list.add(new IntervalArray(1, 3));
List<IntervalArray> result = mergeIntevals.merge(list);
System.out.println(Arrays.toString(result.toArray(new IntervalArray[result.size()])));
}
}
leetcode — merge-intervals的更多相关文章
- LeetCode: Merge Intervals 解题报告
Merge IntervalsGiven a collection of intervals, merge all overlapping intervals. For example,Given [ ...
- [LeetCode] Merge Intervals 排序sort
Given a collection of intervals, merge all overlapping intervals. For example,Given [1,3],[2,6],[8,1 ...
- [LeetCode] Merge Intervals 合并区间
Given a collection of intervals, merge all overlapping intervals. For example, Given [1,3],[2,6],[8, ...
- [leetcode]Merge Intervals @ Python
原题地址:https://oj.leetcode.com/problems/merge-intervals/ 题意: Given a collection of intervals, merge al ...
- Leetcode Merge Intervals
Given a collection of intervals, merge all overlapping intervals. For example,Given [1,3],[2,6],[8,1 ...
- LeetCode() Merge Intervals 还是有问题,留待,脑袋疼。
感觉有一点进步了,但是思路还是不够犀利. /** * Definition for an interval. * struct Interval { * int start; * int end; * ...
- 56[LeetCode] .Merge Intervals
Given an array nums of n integers and an integer target, are there elements a, b, c, and d in nums s ...
- 【题解】【区间】【二分查找】【Leetcode】Insert Interval & Merge Intervals
Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessa ...
- [Leetcode][Python]56: Merge Intervals
# -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com' 56: Merge Intervalshttps://oj.leetcode. ...
- Merge Intervals - LeetCode
目录 题目链接 注意点 解法 小结 题目链接 Merge Intervals - LeetCode 注意点 区间是无序的 每个区间start一定小于end 解法 解法一:首先以start的值从小到大来 ...
随机推荐
- (PMP)第2章-----项目运行环境
1.事业环境因素:(客观存在,可能有帮助或阻碍,项目经理必须遵守) 内部:文化,结构,治理:设施和资源的地理分布,基础设施,信息技术软件,资源可用性,员工能力 外部:市场条件,社会和文化,法律限制,商 ...
- temp--重庆农商行银联前置改造项目出差
2019年度 杨伟携程订郎菲酒店 158, 单人住一晚 (3.5晚), 杨伟招行信用卡 预授权 1000. 与方程一起住 1915房 (其实前台预授权是 1000-158 = 842) 3.6 ...
- Kinfu配置指南
Kinfu配置指南 欢迎加入Kinfu讨论群:563741937 写给准备配置pcl-kinfu的同学,这个是我的配置方法,已经能用的请无视. 我的配置:Windows7,VS2010(用这个的是不是 ...
- alfred3配置
搜索功能配置 github https://github.com/search?utf8=%E2%9C%93&q={query} github'{query}' g baidu http:// ...
- java集成memcached、redis防止缓存穿透
下载相关jar,安装Memcached,安装教程:http://www.runoob.com/memcached/memcached-install.html spring配置memcached &l ...
- Spring-AspectJ 配置文件
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...
- jQuery 基础语法
jQuery介绍 1.jQuery是一个轻量级的.兼容多浏览器的JavaScript库. 2.jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方便地进行Aja ...
- ubuntu16.04下安装g2o
根本不需要编译源码直接一行命令就可以 sudo apt-get install libpcl-dev 如果没有安装pcl_viewer就再加一行命令 sudo apt-get install pcl- ...
- Leetcode35 Search Insert Position 解题思路(python)
本人编程小白,如果有写的不对.或者能更完善的地方请个位批评指正! 这个是leetcode的第35题,这道题的tag是数组,python里面叫list,需要用到二分搜索法 35. Search Inse ...
- jquery validate 校验使用总结
一.jquery.validator表单验证id和name问题 因为后台是struts,表单提交,所有输入框的值保存在name=对象.名字中,而jquery.validator表单验证用的是name, ...