JS实现LeetCode56题:合并区间

本文介绍了一种使用JavaScript解决LeetCode第56题的方法,通过比较区间左边界,对区间进行排序并合并相邻的重叠区间。核心思路是检查第二个区间的左边界是否小于等于第一个区间,从而确定合并后的右边界。
摘要由CSDN通过智能技术生成

 

方法:第二个区间的左区间小于等于第一个区间里的数(第二个区间的左区间小于等于第一个区间的右区间即可),则这两个区间就可以合并,左区间就是第一个区间的左区间,右区间是第一个区间和第二个区间的右区间中较大的值

    注意:在直接开始比较之前,应先对区间数组进行排序,这里比较左区间的值即可,从小到大

直接上代码

    var merge = function(intervals) {
        //先判断传入的数组是否为空
        if(intervals.length<2){
            return intervals;
        }
        //为数组进行排序,只排左区间就好了,这里是为了确定左区间的值是最小的
        intervals.sort((a,b)=>{return a[0]-b[0]})
        //定义一个临时数组curr来存储这个合并后的区间,刚开始的合并区间就是第一个区间
        let curr=intervals[0];
        let result=[]
        //比较第二个区间的左区间是否小于等于第一个区间的右区间
        for(let interval of intervals){
            if(interval[0]<=curr[1]){
                curr[1]=Math.max(curr[1],interval[1])
            }else{
                //不符合合并条件的,就将这个curr压入result,然后重新创建curr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值