Leetcode 56. Merge Intervals
来源:互联网 发布:java api文档在哪里 编辑:程序博客网 时间:2024/06/17 04:09
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].
1.普通sort方法:
public List<Interval> merge(List<Interval> intervals) { // sort start&end int n = intervals.size(); int[] starts = new int[n]; int[] ends = new int[n]; for (int i = 0; i < n; i++) { starts[i] = intervals.get(i).start; ends[i] = intervals.get(i).end; } Arrays.sort(starts); Arrays.sort(ends); // loop through List<Interval> res = new ArrayList<Interval>(); for (int i = 0, j = 0; i < n; i++) { // j is start of interval. if (i == n - 1 || starts[i + 1] > ends[i]){ res.add(new Interval(starts[j], ends[i])); j = i + 1; } } return res;}
2.use collections comparator in java 8
public List<Interval> merge(List<Interval> intervals) { if (intervals.size() <= 1) return intervals; // Sort by ascending starting point using an anonymous Comparator intervals.sort((i1, i2) -> Integer.compare(i1.start, i2.start)); List<Interval> result = new LinkedList<Interval>(); int start = intervals.get(0).start; int end = intervals.get(0).end; for (Interval interval : intervals) { if (interval.start <= end) // Overlapping intervals, move the end if needed end = Math.max(end, interval.end); else { // Disjoint intervals, add the previous one and reset bounds result.add(new Interval(start, end)); start = interval.start; end = interval.end; } } // Add the last interval result.add(new Interval(start, end)); return result; }
阅读全文
0 0
- [LeetCode]56.Merge Intervals
- 56. Merge Intervals Leetcode
- LeetCode --- 56. Merge Intervals
- LeetCode 56.Merge Intervals
- [Leetcode] 56. Merge Intervals
- [leetcode] 56.Merge Intervals
- 【leetcode】56. Merge Intervals
- [leetcode] 56.Merge Intervals
- **LeetCode 56. Merge Intervals
- LeetCode 56. Merge Intervals
- leetcode 56. Merge Intervals
- 【LeetCode】56. Merge Intervals
- LeetCode 56. Merge Intervals
- 【leetcode】56. Merge Intervals
- leetcode 56. Merge Intervals
- leetcode.56. Merge Intervals
- [LeetCode] 56. Merge Intervals
- leetcode 56. Merge Intervals
- HashMap
- Mysql动态操作表或者列
- PHP post数据传输部分缺失
- Beginning Spring学习笔记——第4章(一)Spring JDBC连接的配置
- 为什么会觉得无聊?
- Leetcode 56. Merge Intervals
- Beginning Spring学习笔记——第4章(二)使用Spring执行数据访问操作
- Hexo的安装记录
- android动画的学习体会
- 浅谈Web渗透测试中的信息收集
- C#
- mybatis Invalid bound statement (not found)
- Confluent Platform部署
- 数位分离以及转化成k进制--Integer to Roman