JAVA程序设计: 合并区间(LeetCode:56)

给出一个区间的集合,请合并所有重叠的区间。

示例 1:

输入: [[1,3],[2,6],[8,10],[15,18]]
输出: [[1,6],[8,10],[15,18]]
解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].
示例 2:

输入: [[1,4],[4,5]]
输出: [[1,5]]
解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。

思路:直接按左端点排序后遍历一遍即可。

class qujian implements Comparable
{
	int l,r;
	public qujian(int ll,int rr)
	{
		this.l=ll;
		this.r=rr;
	}
	public int compareTo(qujian b)
	{
		if(l-b.l!=0)
			return l-b.l;
		return r-b.r;
	}
}
class Solution {
    public int[][] merge(int[][] intervals) {
    	
    	qujian[] ans=new qujian[intervals.length];
    	int[][] res=new int[intervals.length][2];
    	if(intervals.length==0)
    		return res;
    	
        for(int i=0;ir)
        		r=ans[i].r;
        	else if(ans[i].l>r)
        	{
        		res[len][0]=l;
        		res[len++][1]=r;
        		l=ans[i].l;
        		r=ans[i].r;
        	}
        }
		res[len][0]=l;
		res[len++][1]=r;
		int[][] ans1=new int[len][2];
		for(int i=0;i

 

你可能感兴趣的:(JAVA程序设计: 合并区间(LeetCode:56))