LongestUploadedPrefix
Published at 2023-02-02
class LUPrefix:
def find(self, x):
self.uploaded.setdefault(x,x)
if x != self.uploaded[x]:
self.uploaded[x] = self.find(self.uploaded[x])
return self.uploaded[x]
def union(self, x, y):
if x not in self.uploaded:
return
rootX = self.find(x) # 니네 대표 데려와
rootY = self.find(y) # 니네 대표도 데려와
self.uploaded[rootX] = self.uploaded[rootY] = max(rootX, rootY) # 두 대표 중 더 쎈애로 교체!
def __init__(self, n: int):
self.uploaded = {} # 연결된 애들 중 가장 긴 비디오 길이 갖고있을거임
self.uploaded[0] = 0
def upload(self, video: int) -> None:
self.uploaded[video] = video
self.union(video-1, video)
self.union(video+1, video)
def longest(self) -> int:
return self.find(0)
# Your LUPrefix object will be instantiated and called as such:
# obj = LUPrefix(n)
# obj.upload(video)
# param_2 = obj.longest()