Leetcode 56.合并区间 JavaScript (Day 6)

javascript 复制代码
var merge = function(intervals) {
        let ans=[];
        intervals.sort((a,b)=>a[0]-b[0]);
        for(const p of intervals){
            const m=ans.length
            if(m&&p[0]<=ans[m-1][1]){
                ans[m-1][1]=Math.max(ans[m-1][1],p[1]);
            }else{
                ans.push(p);
            }
        }
        return ans;
    
};

算法核心:贪心+排序 ,为了方便合并,先将左端点从小到大排序,向右遍历取出子数组,然后用一个新数组ans来存储结果,如果ans数组为空或者要取出来的一个子数组不能合并到ans中已有的数组中的时候,就直接将这个取出子数组push进ans数组,反之,将其与ans中最后一个(因为已经排序了)子数组合并即可,合并一开始我想的是"真"合并用...slice来操作,其实这里的合并说简单点就是更新右端点,看右端点是不变,还是更新为放进来的子数组的右端点,这里用max来比较即可

相关推荐
小白菜又菜9 小时前
Leetcode 2075. Decode the Slanted Ciphertext
算法·leetcode·职场和发展
Proxy_ZZ09 小时前
用Matlab绘制BER曲线对比SPA与Min-Sum性能
人工智能·算法·机器学习
黎阳之光9 小时前
黎阳之光:以视频孪生领跑全球,赋能数字孪生水利智能监测新征程
大数据·人工智能·算法·安全·数字孪生
小李子呢02119 小时前
前端八股6---v-model双向绑定
前端·javascript·算法
前端大波10 小时前
前端面试通关包(2026版,完整版)
前端·面试·职场和发展
2301_8227032010 小时前
Flutter 框架跨平台鸿蒙开发 - 创意声音合成器应用
算法·flutter·华为·harmonyos·鸿蒙
zhaoshuzhaoshu10 小时前
人工智能(AI)发展史:详细里程碑
人工智能·职场和发展
cmpxr_11 小时前
【C】数组名、函数名的特殊
c语言·算法
KAU的云实验台11 小时前
【算法精解】AIR期刊算法IAGWO:引入速度概念与逆多元二次权重,可应对高维/工程问题(附Matlab源码)
开发语言·算法·matlab
会编程的土豆11 小时前
【数据结构与算法】再次全面了解LCS底层
开发语言·数据结构·c++·算法