Skip to content

Commit 2d992f4

Browse files
Create snapshot_array.cpp
1 parent 16c687e commit 2d992f4

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

snapshot_array.cpp

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
class SnapshotArray {
2+
public:
3+
unordered_map<int, unordered_map<int, int>> database;
4+
unordered_map<int, int> cur_data;
5+
int snap_id;
6+
SnapshotArray(int length) {
7+
snap_id = -1;
8+
}
9+
10+
void set(int index, int val) {
11+
cur_data[index] = val;
12+
}
13+
14+
int snap() {
15+
snap_id++;
16+
database[snap_id] = cur_data;
17+
return snap_id;
18+
}
19+
20+
int get(int index, int snap_id) {
21+
return database[snap_id][index];
22+
}
23+
};
24+
/**
25+
* Your SnapshotArray object will be instantiated and called as such:
26+
* SnapshotArray* obj = new SnapshotArray(length);
27+
* obj->set(index,val);
28+
* int param_2 = obj->snap();
29+
* int param_3 = obj->get(index,snap_id);
30+
*/

0 commit comments

Comments
 (0)