★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
?微信公众号:山青咏芝(shanqingyongzhi)
?博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)
?GitHub地址:https://github.com/strengthen/LeetCode
?原文地址:https://www.cnblogs.com/strengthen/p/11297779.html
?如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
?原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
Implement a SnapshotArray that supports the following interface:
-
SnapshotArray(int length)
initializes an array-like data structure with the given length. Initially,each element equals 0. -
void set(index,val)
sets the element at the givenindex
to be equal toval
. -
int snap()
takes a snapshot of the array and returns thesnap_id
: the total number of times we calledsnap()
minus1
. -
int get(index,snap_id)
returns the value at the givenindex
,at the time we took the snapshot with the givensnap_id
Example 1:
Input: ["SnapshotArray","set","snap","get"] [[3],[0,5],[],6],0]] Output: [null,null,5] Explanation: SnapshotArray snapshotArr = new SnapshotArray(3); // set the length to be 3 snapshotArr.set(0,5); // Set array[0] = 5 snapshotArr.snap(); // Take a snapshot,return snap_id = 0 snapshotArr.set(0,6); snapshotArr.get(0,0); // Get the value of array[0] with snap_id = 0,return 5
Constraints:
1 <= length <= 50000
- At most
50000
calls will be made toset
,snap
,andget
. 0 <= index < length
-
0 <= snap_id <
(the total number of times we callsnap()
) 0 <= val <= 10^9
实现支持下列接口的「快照数组」- 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","get"] [[3],0]] 输出:[null,5] 解释: SnapshotArray snapshotArr = new SnapshotArray(3); // 初始化一个长度为 3 的快照数组 snapshotArr.set(0,5); // 令 array[0] = 5 snapshotArr.snap(); // 获取快照,返回 snap_id = 0 snapshotArr.set(0,0); // 获取 snap_id = 0 的快照中 array[0] 的值,返回 5
提示:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。