第二十八天:力扣第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%的用户