用 Python 高效实现 SnapshotArray:支持快照的动态数组设计与分析
在大型系统中,保留数据的某个历史状态是一种常见的需求。本文将带你逐步理解并实现一个支持快照机制的「类数组结构」,可以在任何时间点保存当前状态,并在之后按需回溯查看。这个问题在 LeetCode 上以题目 “Snapshot Array” 出现(题号 1146),是一个设计类题目,具有较高的实用价值和算法挑战性。
📌 题目描述
请实现一个支持以下接口的类 SnapshotArray:
SnapshotArray(int length):初始化一个与指定长度相等的类数组,所有元素初始为0。void set(index, val):设置数组中指定索引index的元素为val。int snap():拍摄快照,返回当前快照的snap_id,编号为调用snap()的次数减去 1。int get(index, snap_id):返回在指定快照snap_id中索引为index的元素值。
示例输入:
["SnapshotArray","set","snap","set","get"]
[[3],[0,5],[],[0,6],[0,0]]

最低0.47元/天 解锁文章
1169

被折叠的 条评论
为什么被折叠?



