leetcode56:Merge Intervals

大都是自定义了 Interval的比较方法。

突发奇想

int [] arr=new int[intervals.Count*2];
			for(int i=0;i<intervals.Count;i++)
			{
				arr[i*2]=intervals[i].start*10+1;
				arr[i*2+1]=intervals[i].end*10+2;
			}
			Array.Sort(arr);
			IList<Interval> list=new List<Interval>();

			int s=0;//int e=1;
			int count=0;
			for(int i=0;i<arr.Length;i++)
			{
				if(arr[i]%2==1) count++;
				else if(arr[i]%2==0) count--;
				if(count==0)
				{
					list.Add(new Interval(arr[s]/10,arr[i]/10));
					s=i+1;
				}
			}
			return list;

  

时间: 2024-08-04 16:01:08

leetcode56:Merge Intervals的相关文章

lintcode 容易题:Merge Intervals 合并区间

题目: 合并区间 给出若干闭合区间,合并所有重叠的部分. 样例 给出的区间列表 => 合并后的区间列表: [ [ [1, 3], [1, 6], [2, 6], => [8, 10], [8, 10], [15, 18] [15, 18] ] ]挑战 O(n log n) 的时间和 O(1) 的额外空间. 解题: 先以区间的左边界进行排序,再异步的方式比较右边边界进行合并 程序来源 Java程序 /** * Definition of Interval: * public class Inte

LeetCode第[56]题(Java):Merge Intervals

题目:合并区间 难度:Medium 题目内容: Given a collection of intervals, merge all overlapping intervals. 翻译: 给定一个区间的集合,合并所有重叠的区间. Example 1: Input: [[1,3],[2,6],[8,10],[15,18]] Output: [[1,6],[8,10],[15,18]] Example 2: Input: [[1,4],[4,5]] Output: [[1,5]] 我的思路:因为可能

LeetCode --- 56. Merge Intervals

题目链接: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]. 这道题的要求是将给定的一组间隔中有重叠的进行合并. 将间隔合并,首先要找到相邻的间隔,然后看其是否有重叠,如果有,就进行合并. 因此,首先考虑对数组排序.排序的时候,只需要按

[array] leetcode-56. Merge Intervals - Medium

leetcode-56. Merge Intervals - Medium descrition 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 - 连通分支 通过图的方法来解决.算法描述如下: 以每

60. Insert Interval &amp;&amp; Merge Intervals

Insert Interval Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessary). You may assume that the intervals were initially sorted according to their start times. Example 1: Given intervals [1,3],[6,9], i

【LeetCode】Merge Intervals 题解 利用Comparator进行排序

题目链接Merge Intervals /** * Definition for an interval. * public class Interval { * int start; * int end; * Interval() { start = 0; end = 0; } * Interval(int s, int e) { start = s; end = e; } * } * 题目:LeetCode 第56题 Merge Intervals 区间合并给定一个区间的集合,将相邻区间之间

LeetCode: Merge Intervals 解题报告

Merge IntervalsGiven 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]. SOLUTION 1: 1. 先使用Comparator 的匿名类对intervels进行排序. 2. 把Intervals遍历一次,依次一个一个merge到第1个interval. 把第1

056 Merge Intervals

题目: 056 Merge Intervals 这道题和 057 基本相似, 想法更加直接, 对start 进行排序,然后扫描一次并跟新返回的答案 class Solution: # @param {Interval[]} intervals # @return {Interval[]} def merge(self, intervals): ans = [] for i in sorted(intervals, key=lambda i:i.start): if ans and ans[-1]

[leetcode]Merge Intervals @ Python

原题地址: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]. 解题思路:先将区间按照每个start的值来排序,排好序以后判断一个区间的start值是否处在前一个区间