파비의 매일매일 공부기록

2023.01.28 Today's Challenge 본문

Problem Solving/LeetCode

2023.01.28 Today's Challenge

fabichoi 2023. 1. 28. 23:45

https://leetcode.com/problems/data-stream-as-disjoint-intervals/

 

Data Stream as Disjoint Intervals - LeetCode

Data Stream as Disjoint Intervals - Given a data stream input of non-negative integers a1, a2, ..., an, summarize the numbers seen so far as a list of disjoint intervals. Implement the SummaryRanges class: * SummaryRanges() Initializes the object with an e

leetcode.com

난이도가 몇일째 Hard 구만 ㅠ_ㅠ

from sortedcontainers import SortedList
class SummaryRanges:

    def __init__(self):
        self.nums = set()

    def addNum(self, value: int) -> None:
        self.nums.add(value)
     

    def getIntervals(self) -> List[List[int]]:
        intervals = []
        seen = set()

        for num in self.nums:
            if num in seen:
                continue

            left = num
            while left - 1 in self.nums:
                left -= 1
                seen.add(left)

            right = num
            while right + 1 in self.nums:
                right += 1
                seen.add(right)
            
            intervals.append([left, right])
        return sorted(intervals)
반응형

'Problem Solving > LeetCode' 카테고리의 다른 글

2023.01.30 Today's Challenge  (1) 2023.01.30
2023.01.29 Today's Challenge  (0) 2023.01.29
2023.01.27 Today's Challenge  (0) 2023.01.27
2023.01.26 Today's Challenge  (0) 2023.01.26
2023.01.25 Today's Challenge  (0) 2023.01.25
Comments