题解 | #合并区间#
合并区间
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) {
intervals.sort(Comparator.comparing((interval) -> interval.start));
// write code here
Interval last, cur;
Boolean flag = false;
ArrayList<Interval> result = new ArrayList<>();
if(intervals.size() == 1 || intervals.size() == 0)
return intervals;
last = intervals.get(0);
for(int i = 1; i < intervals.size(); i++){
cur = intervals.get(i);
if(last.end >= cur.start){
last = mergeIntervalTwo(last, cur);
flag = true;
}else{
result.add(last);
last = cur;
flag = false;
}
}
result.add(last);
return result;
}
private Interval mergeIntervalTwo(Interval first, Interval second){
return new Interval(first.start, first.end > second.end ? first.end : second.end);
}
}
查看11道真题和解析
