So, I wrote a code, for this problem.
Code :
<code>import copy
class SnapshotArray:
def __init__(self, length: int):
self.lst = [0] * length
self.snap_id = -1
self.hash = []
self.by_snap_id = 0
return None
def set(self, index: int, val: int) -> None:
self.lst[index] = val
return None
def snap(self) -> int:
self.snap_id += 1
self.copy = copy.copy(self.lst)
self.hash.append(self.copy)
del self.lst
self.lst = self.hash[self.snap_id]
return self.snap_id
def get(self, index: int, snap_id: int) -> int:
return self.hash[snap_id][index]
</code>
<code>import copy
class SnapshotArray:
def __init__(self, length: int):
self.lst = [0] * length
self.snap_id = -1
self.hash = []
self.by_snap_id = 0
return None
def set(self, index: int, val: int) -> None:
self.lst[index] = val
return None
def snap(self) -> int:
self.snap_id += 1
self.copy = copy.copy(self.lst)
self.hash.append(self.copy)
del self.lst
self.lst = self.hash[self.snap_id]
return self.snap_id
def get(self, index: int, snap_id: int) -> int:
return self.hash[snap_id][index]
</code>
import copy
class SnapshotArray:
def __init__(self, length: int):
self.lst = [0] * length
self.snap_id = -1
self.hash = []
self.by_snap_id = 0
return None
def set(self, index: int, val: int) -> None:
self.lst[index] = val
return None
def snap(self) -> int:
self.snap_id += 1
self.copy = copy.copy(self.lst)
self.hash.append(self.copy)
del self.lst
self.lst = self.hash[self.snap_id]
return self.snap_id
def get(self, index: int, snap_id: int) -> int:
return self.hash[snap_id][index]
In 69 / 75 testcase it says MLE
So I tried to make just one list from which I’ll be taking value for current list too, but it didn’t work. So, how do I reduce amount of memory used?
New contributor
AlwaysneedsHelp is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.