加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

[Swift]LeetCode1146. 快照数组 | Snapshot Array

发布时间:2020-12-14 04:29:42 所属栏目:百科 来源:网络整理
导读:★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ?微信公众号:山青咏芝(shanqingyongzhi) ?博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/) ?GitHub地址:https://github.com/strengthen/LeetCode ?原

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
?微信公众号:山青咏芝(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 given?index?to be equal to?val.
  • int snap()?takes a snapshot of the array and returns the?snap_id: the total number of times we called?snap()?minus?1.
  • int get(index,snap_id)?returns the value at the given?index,at the time we took the snapshot with the given?snap_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 to?set,?snap,and?get.
  • 0 <= index?<?length
  • 0 <=?snap_id <?(the total number of times we call?snap())
  • 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

提示:

  • 1 <= length?<= 50000
  • 题目最多进行50000?次setsnap,和?get的调用 。
  • 0 <= index?<?length
  • 0 <=?snap_id <?我们调用?snap()?的总次数
  • 0 <=?val <= 10^9

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读