为了账号安全,请及时绑定邮箱和手机立即绑定

js 线段算法 已知完成线段,求剩余线段

js 线段算法 已知完成线段,求剩余线段

PHP
缥缈止盈 2019-03-02 04:06:03
例子 已知 起点为0 末点为80000arr [0] :起点arr [1] :末点起点与末点如果相同要求进行合并最终产生新的剩余段落以下的数组为完成的线段       arr =             [0, 0],//起             [500, 1000],             [3000, 3500], //相同1             [6000, 10000],//相同2             [3500, 5000],//相同1             [10000, 20000],//相同2             [50000, 80000]//止转换为            [0, 500],            [1000, 3000],            [5000, 6000],              [20000, 50000],
查看完整描述

2 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

var arr =[
    [0, 0],//起
    [500, 1000],
    [3000, 3500], //相同1
    [6000, 10000],//相同2
    [3500, 5000],//相同1
    [10000, 20000],//相同2
    [50000, 80000]//止]

arr.sort((a,b)=>a[0] - b[0])let point = 0;let res = [];for (let index = 0; index < arr.length; index++) {    if(point < arr[index][0]){
        res.push([point,arr[index][0]])
        point = arr[index][1]
    }else{
        point = Math.max(point,arr[index][1])
    }
}
console.log(res)

楼上说的对,时间复杂度取决于排序


查看完整回答
反对 回复 2019-03-28
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

先按起点排序,然后一趟扫描就能搞定

查看完整回答
反对 回复 2019-03-28
  • 2 回答
  • 0 关注
  • 443 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信