1 | 给出一个区间的集合,请合并所有重叠的区间。 |
解题思路:如果我们按照区间的左端点排序,那么在排完序的列表中,可以合并的区间一定是连续的,然后判断如果左端点在最后一个区间右端点之前,那么这两个区间可以合并,右端点取两个的最大值,反之,两者不可合并,那么直接将这个区间加入到res数组中
1 | class Solution { |
其中涉及到了拉姆达表达式:目的在于简化代码,作用和传入一个compara一样,lamda表达式的语法:(参数1,参数1)->要执行的语法,这里就是一个比较器的简化写法
还有在返回处,由于我们并不知道最终的区间有几个,而我们的res在new出来时是为了确保数组容量足够容纳length,所以不能直接返回res,然后index从0开始,故区间的个数是index+1个,所以我们copyOf的长度是index+1个