1146. Snapshot Array
class SnapshotArray:
def __init__(self, length: int):
self.snaps = [{}]
self.snapId = 0
def set(self, index: int, val: int) -> None:
self.snaps[self.snapId][index] = val
def snap(self) -> int:
self.snaps.append({})
self.snapId += 1
return self.snapId - 1
def get(self, index: int, snap_id: int) -> int:
while snap_id != -1:
if index in self.snaps[snap_id]:
return self.snaps[snap_id][index]
snap_id -= 1
return 0