class SummaryRanges:
def __init__(self):
self.visit = [0 for _ in range(10003)]
def addNum(self, value: int) -> None:
self.visit[value] = 1
def getIntervals(self) -> List[List[int]]:
start = 0
ans = []
while start <= 10001:
if self.visit[start] == 0:
while start <= 10001 and self.visit[start] == 0:
start += 1
if self.visit[start] == 1:
cnt = 0
while self.visit[start + cnt] == 1:
cnt += 1
ans.append([start, start+cnt-1])
start += cnt
return ans
아 이번에는 좀 부끄럽다. 고민하다가 일단 넣어봤는데 이게 되네 ㅅㅂ;
최악의 케이스인 [1,1],[3,3],[5,5],[7,7], ... 같은걸 생각해보면 getInterval이 O(N)일거 같길래..
릿코드는 일단 나이브도 통과시켜주고 최적화를 더 할 여지가 있는 문제가 많은거 같아
댓글 0