我的js算法爬坑之旅-插入区间

87 阅读1分钟

第二十八天:力扣第57题,插入区间

地址:leetcode-cn.com/problems/in…

思路:这道题难点在于思路,题目本身不难,但是如果没有一个好的思路的话,实现起来就会很繁杂。

var insert = function(intervals, newInterval) {
  let res = [];//声明空数组存入结果
  let i = 0;//类似与指针了
  for(; i < intervals.length; i++)
  {
    if(intervals[i][1] < newInterval[0])//左边小于的直接先存入
    {
      res.push(intervals[i]);
    }
    else{
        break;
    }
  }
  for(; i < intervals.length; i++)
  {
    if(newInterval[1] >= intervals[i][0])//这里就是newInterval进行比较改变包含长度的地方
    {
      newInterval[0] = Math.min(newInterval[0],intervals[i][0]);
      newInterval[1] = Math.max(newInterval[1],intervals[i][1]);
    }
    else{
        break;
    }
  }
  res.push(newInterval);
  for(;i < intervals.length; i++)//最后的再放入
  {
    res.push(intervals[i]);
  }
  return res;
};
执行用时:96 ms, 在所有 JavaScript 提交中击败了65.93%的用户
内存消耗:39.9 MB, 在所有 JavaScript 提交中击败了35.46%的用户