MergeIntervals题目描述:用数组区间表示多个区间的集合,其中单个区间为intervals[i]=[start~i~,end~i~]。请合并所有重叠区间并返回一个完全覆盖输入中所有区间的非重叠区间数组。例子见LeetCode官网。来源:LeetCode链接:https://leetcode-cn.com/probl...版权归LeetCode所有。商业转载请联系官方授权,非商业转载请注明出处。方案一:递归递归过程如下:如果intervals为空或者intervals只有一个元素,即只有一个interval,则不需要合并处理,直接返回intervals;如果intervals有多个元素,声明一个变量length记录intervals一维Length(即有多少个intervals),变量match记录不需要合并的intervals个数,matchFirst和matchSecond记录当前需要匹配的两个区间数,然后声明一个布尔数组flag,记录区间是否已经合并,然后使用双循环判断哪些区间可以合并,过程如下:外层循环i从第一个区间开始,matchFirst和matchSecond记录i对应的区间的两个值并匹配加1;内层循环j从i+1区间开始,curFirst和curSecond记录j对应区间的2个值,然后用matchFirst,matchSecond,curFirst,curSecond判断两个区间i和j是否有交集,如果是则更新区间i数的2个值,并更新matchFirst和matchSecond,将j的区间标记为true进行合并;如果没有交集,则处理下一个;双循环处理完后,判断match和length是否相等,相等则说明没有merge区间,return区间;如果不相等,则初始化一个新的二维数组newIntervals,将intervals中未合并的区间(根据flag数组判断是否合并)复制到newIntervals中,然后递归调用merge(newIntervals)。publicclassLeetCode_056{publicstaticint[][]merge(int[][]intervals){if(intervals==null||intervals.length==1){返回区间;}intlength=intervals.length,match=0,matchFirst,matchSecond;布尔[]标志=新布尔[长度];对于(inti=0;i
