hot 100 56. 合并区间
合并区间问题描述样例输入样例输出评测用例规模与约定解析参考程序难度等级问题描述以数组 intervals 表示若干个区间的集合其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间并返回 一个不重叠的区间数组该数组需恰好覆盖输入中的所有区间 。样例输入intervals[[1,3],[2,6],[8,10],[15,18]]样例输出[[1,6],[8,10],[15,18]]评测用例规模与约定1 intervals.length 10^4intervals[i].length 20 starti endi 10^4解析按照区间左端点排序然后比较在不在一个区间在就合并不在就加入。为何按照左端点右端点也行不过到倒着遍历主要是有个顺序可以合并。参考程序classSolution{publicint[][]merge(int[][]intervals){if(intervals.length0)returnnewint[0][2];Arrays.sort(intervals,newComparatorint[](){publicintcompare(int[]interval1,int[]interval2){returninterval1[0]-interval2[0];}});Listint[]mergednewArrayListint[]();for(inti0;iintervals.length;i){intlintervals[i][0],rintervals[i][1];if(merged.size()0||merged.get(merged.size()-1)[1]l)merged.add(newint[]{l,r});elsemerged.get(merged.size()-1)[1]Math.max(merged.get(merged.size()-1)[1],r);}returnmerged.toArray(newint[merged.size()][]);}}难度等级⭐️⭐️⭐️⭐️1~10星以个人刷题整理为目的如若侵权请联系删除~