100% memory, 88.74% , hash of hash map
\nclass SnapshotArray(object):\n\n    def __init__(self, length):\n        """\n        :type length: int\n        """\n        self.snaps = 0\n        self.sto
```\nclass SnapshotArray(object):\n\n    def __init__(self, length):\n        """\n        :type length: int\n        """\n        self.snaps = 0\n        self.store = dict()\n        self.store[0] = dict()\n        \n        \n\n    def set(self, index, val):\n        """\n        :type index: int\n        :type val: int\n        :rtype: None\n        """\n        self.store[self.snaps][index] = val\n        \n\n    def snap(self):\n        """\n        :rtype: int\n        """\n        self.snaps += 1\n        a = (self.store[self.snaps -1]).copy()\n        self.store[self.snaps] = a\n        return self.snaps -1\n            \n\n    def get(self, index, snap_id):\n        """\n        :type index: int\n        :type snap_id: int\n        :rtype: int\n        """\n        if index in self.store[snap_id]:\n            return self.store[snap_id][index]\n        else:\n            return 0\n\n\n\n```
['Python3']