class Solution:
def eraseOverlapIntervals(self, intervals: List[List[int]]) -> int:
n = len(intervals)
if n == 0:
return 0
intervals.sort()
dp = [1] * n
max_len = 1
for j in range(n):
for i in range(j):
if intervals[j][0] >= intervals[i][1] and dp[i] >= dp[j]:
dp[j] = dp[i] + 1
max_len = max(max_len, dp[j])
return n - max_len
class Solution:
def eraseOverlapIntervals(self, intervals: List[List[int]]) -> int:
n = len(intervals)
if n == 0:
return 0
intervals.sort(key=lambda x: x[1])
length = []
for left, right in intervals:
if len(length) == 0 or left >= length[-1]:
length.append(right)
return n - len(length)