LeetCode56.結合
981 ワード
問題を解く構想.対の集合は、開始値の昇順に 配列する.は、2つのオブジェクトv 1(最初に並べ替えられたセットの最初の要素)を作成し、v 2(v 1の後の要素)を比較し、区間が重なることが判明した場合、v 1の末尾値を変更します.そうしないと、直接v 1を結果配列に追加し、v 2から を比較します.
public List merge(List intervals) {
List list = new ArrayList();
if(intervals.size() == 0)
return list;
// , Comparator
Collections.sort(intervals,new Comparator() {
@Override
public int compare(Interval o1, Interval o2) {
// TODO Auto-generated method stub
return o1.start - o2.start;//
}
});
Interval v1=intervals.get(0);
for(int i=0;i= v1.start &&v2.start <= v1.end){
v1.end = Math.max(v1.end, v2.end);
}else{// ,
list.add(v1);
v1 = v2;//i1
}
}
return list;
}