Non-overlapping Intervals

MediumArrayDynamic ProgrammingGreedySorting

Solution

export function eraseOverlapIntervals(intervals: number[][]): number {
  intervals.sort((a, b) => a[1] - b[1]);
 
  let answer = 0;
  let lastEnd = Number.MIN_SAFE_INTEGER;
  for (const [start, end] of intervals) {
    if (lastEnd <= start) {
      lastEnd = end;
    } else {
      answer += 1;
    }
  }
 
  return answer;
}