题解 | #合并区间#

合并区间

http://www.nowcoder.com/practice/69f4e5b7ad284a478777cb2a17fb5e6a

import java.util.*; /**

  • Definition for an interval.
  • public class Interval {
  • int start;
    
  • int end;
    
  • Interval() { start = 0; end = 0; }
    
  • Interval(int s, int e) { start = s; end = e; }
    
  • } */ public class Solution { public ArrayList merge(ArrayList intervals) { Collections.sort(intervals, (v1, v2)->v1.start - v2.start); ArrayList res = new ArrayList(); int idx = -1; for(Interval interval : intervals){ if(idx == -1 || interval.start > res.get(idx).end){ //若数组为空,或当前区间的起始位置小于结果list中最后区间的终止位置 //不合并,直接将当前区间加入结果list res.add(interval); idx ++; }else{ //合并,选择较大的数作为最后区间的终止位置 res.get(idx).end = Math.max(interval.end, res.get(idx).end); } } return res; } }
我居南半坡 文章被收录于专栏

多刷题,积蓄力量,欢迎讨论

全部评论

相关推荐

06-19 12:33
安徽大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务