LeetCode 56. 병합 간격
구간 모음이 주어지면 겹치는 구간을 모두 병합합니다.
예 1:
입력: 간격 = [[1,3],[2,6],[8,10],[15,18]]
출력: [[1,6],[8,10],[15,18]]
설명: 구간 [1,3]과 [2,6]이 겹치므로 [1,6]으로 병합합니다.
예 2:
입력: 간격 = [[1,4],[4,5]]
출력: [[1,5]]
설명: 간격 [1,4] 및 [4,5]가 겹치는 것으로 간주됩니다.
참고: 2019년 4월 15일에 입력 유형이 변경되었습니다. 새 메서드 서명을 얻으려면 기본 코드 정의로 재설정하십시오.
제약 조건:
간격[i][0] <= 간격[i][1]
var merge = function(intervals) {
if(intervals.length <= 1) return intervals;
// sort the array so earlier start times are at the beginning
intervals = intervals.sort((a,b) => a[0] - b[0])
let output = [intervals[0]];
let current = output[0];
// If the current interval's end time is greater than or equal
// to the next interval's start time, then we know there is an
// overlap and we merge them.
// If there is no overlap, then we add the next interval to the
// list of intervals in our output array and repeat the process
// until we go through the entire list of intervals.
for(let i = 1; i< intervals.length;i++) {
const next = intervals[i]
if(current[1] >= next[0]) {
current[1] = Math.max(current[1], next[1]);
} else {
current = next;
output.push(current);
}
}
return output;
};
Reference
이 문제에 관하여(LeetCode 56. 병합 간격), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/cod3pineapple/56-merge-intervals-ko3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
var merge = function(intervals) {
if(intervals.length <= 1) return intervals;
// sort the array so earlier start times are at the beginning
intervals = intervals.sort((a,b) => a[0] - b[0])
let output = [intervals[0]];
let current = output[0];
// If the current interval's end time is greater than or equal
// to the next interval's start time, then we know there is an
// overlap and we merge them.
// If there is no overlap, then we add the next interval to the
// list of intervals in our output array and repeat the process
// until we go through the entire list of intervals.
for(let i = 1; i< intervals.length;i++) {
const next = intervals[i]
if(current[1] >= next[0]) {
current[1] = Math.max(current[1], next[1]);
} else {
current = next;
output.push(current);
}
}
return output;
};
Reference
이 문제에 관하여(LeetCode 56. 병합 간격), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/cod3pineapple/56-merge-intervals-ko3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)