您的位置:首页 > 其它

题目:合并区间

2015-08-19 19:07 351 查看
给出若干闭合区间,合并所有重叠的部分。

您在真实的面试中是否遇到过这个题?

Yes

哪家公司问你的这个题?
Airbnb
Alibaba
Amazon Apple
Baidu Bloomberg
Cisco Dropbox
Ebay Facebook
Google Hulu
Intel Linkedin
Microsoft NetEase
Nvidia Oracle
Pinterest Snapchat
Tencent Twitter
Uber Xiaomi
Yahoo Yelp
Zenefits
感谢您的反馈

样例

给出的区间列表 => 合并后的区间列表:

[                     [
[1, 3],               [1, 6],
[2, 6],      =>       [8, 10],
[8, 10],              [15, 18]
[15, 18]            ]
]


挑战

O(n log n) 的时间和 O(1) 的额外空间。

标签 Expand

排序

数组

相关题目 Expand

/**

* Definition of Interval:

* public class Interval {

* int start, end;

* Interval(int start, int end) {

* this.start = start;

* this.end = end;

* }

*/

class Solution {

/**

* @param intervals: Sorted interval list.

* @return: A new sorted interval list.

*/

public List<Interval> merge(List<Interval> intervals) {

// write your code here

if(null==intervals||intervals.size()==0) return intervals;

List<Interval> result = new ArrayList<Interval>();

Collections.sort(intervals,new IntervalComparator() );

int i = 1;

Interval tmp = intervals.get(0);

while (i < intervals.size()) {

Interval x = intervals.get(i);

if (x.start > tmp.end) {

result.add(tmp);

tmp = x;

} else {

if(tmp.end<x.end){

tmp.end = x.end;

}

}

i++;

}

result.add(tmp);

return result;

}

class IntervalComparator implements Comparator<Interval>{

@Override

public int compare(Interval o1, Interval o2) {

// TODO Auto-generated method stub

return o1.start-o2.start;

}

}

}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: