本文主要是介绍算法| ss 合并区间,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- 56.合并区间
56.合并区间
/*** @param {number[][]} intervals* @return {number[][]}*/
// 思路 区间合并
// 数组升序
// 取第一个元素作为pre
// for循环遍历
// 条件判断: 如果当前开始大于pre的结尾,则存入pre, 更新pre为当前
// 否则 pre的结束等于当前结束和pre结束的最大值
// 收尾: 存入pre
var merge = function (intervals) {intervals.sort((a, b) => a[0] - b[0]);let pre = intervals[0];const ans = [];for (let i = 1; i < intervals.length; i++) {let cur = intervals[i];if (cur[0] > pre[1]) {ans.push(pre);pre = cur;} else {pre[1] = Math.max(pre[1], cur[1]);}}ans.push(pre);console.log(ans);return ans;
};
merge([[1, 3],[2, 6],[8, 10],[15, 18],
]);// 示例 1:// 输入:intervals = [[1,3],[2,6],[8,10],[15,18]]
// 输出:[[1,6],[8,10],[15,18]]
// 解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].
这篇关于算法| ss 合并区间的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!