1146. Snapshot Array
https://leetcode.com/problems/snapshot-array/
/*
* @lc app=leetcode id=1146 lang=cpp
*
* [1146] Snapshot Array
*/
// @lc code=start
class SnapshotArray {
public:
int snap_id = 0;
vector<map<int, int>> snaps;
SnapshotArray(int length) {
snaps.resize(length);
for (int i = 0; i < length; ++i) {
snaps[i][0] = 0;
}
}
void set(int index, int val) {
snaps[index][snap_id] = val;
}
int snap() {
return snap_id++;
}
int get(int index, int snap_id) {
return prev(snaps[index].upper_bound(snap_id))->second;
}
};
/**
* Your SnapshotArray object will be instantiated and called as such:
* SnapshotArray* obj = new SnapshotArray(length);
* obj->set(index,val);
* int param_2 = obj->snap();
* int param_3 = obj->get(index,snap_id);
*/
// @lc code=end
Last updated