力扣 56. 合并区间 Java题解
题目描述
做题思路
这道题很容易想到从前往后遍历然后判断是否重合,然后重新设置区间的两个端点合并区间。
但是有一种可能是最后一个区间可能和第一个区间重合那么你按顺序只比较相邻的两个这种做法是很显然不对的
为来避免着这种情况,我们先把数组按照它的左端点升序排序,然后在依次遍历判断当前区间是否和前面的区间是否重合然后合并
排完序后就是具体实现思路
设置一个ArrayList集合 list 存放 一个不会和其他区间重合的区间(区间用用两个端点star end表示)。
先让 star end 为第一个区间的两个端点,如果第二个区间和第一个区间重合
那么intervals[1][0]<intervals[0][0] 然后用end =Math.max(end,intervals[1][1])来决定合并后区间的后端点
如果第一个区间和第二个区间不重合那么将star end存入list集合中,然后将star end的值改成第二个区间左右端点的值重复上述操作
代码
上一篇:
92天倒计时,蓝桥杯省赛备赛攻略来啦~
下一篇:
力扣解法汇总1041. 困于环中的机器人