무한 집합에서 가장 작은 숫자

3150 단어 leetcodepython
모든 양의 정수 [1, 2, 3, 4, 5, ...]를 포함하는 집합이 있습니다.

SmallestInfiniteSet 클래스를 구현합니다.

SmallestInfiniteSet() 모든 양의 정수를 포함하도록 SmallestInfiniteSet 개체를 초기화합니다.
int popSmallest() 무한 집합에 포함된 가장 작은 정수를 제거하고 반환합니다.
void addBack(int num) 무한 집합에 아직 없는 경우 양의 정수 num을 다시 무한 집합에 추가합니다.

class SmallestInfiniteSet:
    import heapq
    def __init__(self):
        self.summary = list(range(1, 1001))
        heapq.heapify(self.summary)
        self.deleted = set()
    def popSmallest(self) -> int:
        A = heapq.heappop(self.summary)
        self.deleted.add(A)
        return A
    def addBack(self, num: int) -> None:
        if num in self.deleted:
            self.deleted.remove(num)
            heapq.heappush(self.summary, num)

좋은 웹페이지 즐겨찾기