题解 | #合并区间#
合并区间
https://www.nowcoder.com/practice/69f4e5b7ad284a478777cb2a17fb5e6a
import java.util.*; /* * public class Interval { * int start; * int end; * public Interval(int start, int end) { * this.start = start; * this.end = end; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param intervals Interval类ArrayList * @return Interval类ArrayList */ public ArrayList<Interval> merge (ArrayList<Interval> intervals) { // write code here int n = intervals.size(); ArrayList<Interval> ans = new ArrayList<Interval>(); if(n==0)return intervals; Collections.sort(intervals, new Comparator<Interval>(){ public int compare(Interval o1, Interval o2){ if(o1.start != o2.start) return o1.start - o2.start; else return o1.end - o2.end; } }); int i=0; Interval cur=intervals.get(0); while(i<n){ Interval nxt = intervals.get(i); if(nxt.start<=cur.end){ cur.end=Math.max(cur.end,nxt.end); }else{ ans.add(cur); cur=nxt; } i+=1; } ans.add(cur); return ans; } }