1146. 快照数组 发表于 2021-12-17 更新于 2022-10-29 分类于 leecode刷题复习 这是文章开头,显示在主页面,详情请点击此处。 123456789101112131415161718192021222324252627class SnapshotArray: def __init__(self, length: int): self.id_lst = [[-1] for _ in range(length)] self.value_lst = [[0] for _ in range(length)] self.snap_id = 0 def set(self, index: int, val: int) -> None: if self.id_lst[index][-1] == self.snap_id: self.value_lst[index][-1] = val else: self.id_lst[index].append(self.snap_id) self.value_lst[index].append(val) def snap(self) -> int: self.snap_id += 1 return self.snap_id-1 def get(self, index: int, snap_id: int) -> int: i = bisect.bisect_right(self.id_lst[index], snap_id) return self.value_lst[index][i-1]# Your SnapshotArray object will be instantiated and called as such:# obj = SnapshotArray(length)# obj.set(index,val)# param_2 = obj.snap()# param_3 = obj.get(index,snap_id)