5.3
本来以为是排好序的区间,后来发现不是。
/**
* Definition of Interval:
* public class Interval {
* int start, end;
* Interval(int start, int end) {
* this.start = start;
* this.end = end;
* }
*/
class Solution {
/**
* @param intervals, a collection of intervals
* @return: A new sorted interval list.
*/
public List<Interval> merge(List<Interval> intervals) {
// write your code here
int size = intervals.size();
if (size <= 1){
return intervals;
}
for (int i = 0; i < intervals.size()-1; i++){
Interval tmp1 = intervals.get(i);
for (int j = i+1; j < intervals.size(); j++){
Interval tmp2 = intervals.get(j);
//System.out.println("j0:" + j);
if(tmp2.start <= tmp1.end && tmp2.start>=tmp1.start){
tmp1.end = Math.max(tmp1.end,tmp2.end);
tmp1.start = Math.min(tmp1.start,tmp2.start);
intervals.remove(j);
//System.out.println("删除了:j1:" + j);
j = i;
continue;
}
if(tmp1.start <= tmp2.end && tmp1.start>=tmp2.start){
tmp1.start = Math.min(tmp1.start,tmp2.start);
tmp1.end = Math.max(tmp1.end,tmp2.end);
intervals.remove(j);
//System.out.println("删除了:j2:" + j);
j = i;
continue;
}
}
//intervals.get(i).start = tmp1.start;
//intervals.get(i).end = tmp1.end;
//System.out.println("i1:" + i);
}
// 对intervals进行排序
for(int m = 0;m < intervals.size()-1; m++){
for(int n = m +1;n < intervals.size();n++){
if(intervals.get(m).start > intervals.get(n).start){
int s = intervals.get(m).start;
int e = intervals.get(m).end;
intervals.get(m).end = intervals.get(n).end;
intervals.get(m).start = intervals.get(n).start;
intervals.get(n).end = e;
intervals.get(n).start = s;
}
}
}
return intervals;
}
}本来以为最后的结果不用排序,后来发现不是。
哎。合并区间,和插入区间的题,整得有点儿憔悴。
240

被折叠的 条评论
为什么被折叠?



