56. Merge Intervals
Tags:
Medium
Skills:
Interval
June 24, 2025
04:32 AM
No headings found
Loading content...
Related Posts
Leetcode
No headings found
Related Posts
Leetcode
Problem
Bài toán yêu cầu bạn gộp các khoảng thời gian (intervals) bị chồng lấn thành các khoảng không chồng lấn. Mỗi interval là một mảng gồm 2 số [start, end] .
Approach
startstart của interval hiện tại lớn hơn end của interval cuối cùng), thêm interval hiện tại vào kết quảend của interval cuối cùng thành giá trị lớn nhất giữa end hiện tại và end cuối cùngSolution
1function merge(intervals: number[][]): number[][] {
2 if (intervals.length === 0) return [];
3 intervals.sort((a, b) => a[0] - b[0])
4
5 let [start, end] = intervals[0];
6 let merged: number[][] = [];
7 for (let i = 1; i < intervals.length; i++) {
8 let [curr_start, curr_end] = intervals[i];
9 if (curr_start > end) {
10 // current interval lays before
11 merged.push([start, end]);
12 [start, end] = [curr_start, curr_end]
13 } else {
14 end = Math.max(end, curr_end);
15 }
16 }
17
18 merged.push([start, end])
19 return merged
20};