Remove Covered Intervals (Leetcode 1288)

Problem Link: https://leetcode.com/problems/remove-covered-intervals/

class Solution:
    def removeCoveredIntervals(self, intervals: List[List[int]]) -> int:
        
        # Sort the intervals based on left indices
        # If there is a tie, sort the right indices
        # in descending order.
        
        # This makes sure the largest intervals are
        # on the beginning.
        
        # -x[1] indicates sorting in desc order if
        # there is a tie on the left index
        intervals.sort(key=lambda x: (x[0], -x[1]))
        
        n=len(intervals)
        s=[]
        s.append(intervals[0])
        for i in range(1,n):
            if(s[-1][0]<=intervals[i][0] and s[-1][1]>=intervals[i][1]):
                continue
            else:
                s.append(intervals[i])
        
        return len(s)

Last updated