【发布时间】:2018-04-29 13:07:53
【问题描述】:
我有一个 10^7 512 位元素的动态数组,其中的元素可以添加、删除和相互交换。每次,用户操作数组时,我都想以节省空间的方式记录更改,这样我就能够获得最终版本,而无需评估所有以前的版本。哪种数据结构最好?
一种昂贵的方法是存储数组的所有版本:
[1,5,7,3,8,2]
[1,4,5,7,3,8,2]
[1,5,4,7,3,8,2]
[1,4,5,3,7,8,2]
[2,4,5,3,7,8,1]
另一种方式(这需要计算每个版本以找到当前状态):
[1,5,7,3,8,2]
Add 4 between 1 and 5
Switch 4 with 5
Switch 3 with 7
Switch 1 with 2
有没有节省空间的替代方案来解决这个问题?!
谢谢!
【问题讨论】:
-
串联散列
-
你能帮帮我吗?
-
是哪种语言。您的标签涵盖所有内容。平台也很重要...
-
我的语言是python
-
如果您的语言是 Python,请不要添加 JavaScript 或 C++ 标签。您将吸引反对票(负面关注),而不是从添加不相关的标签中获益。
标签: python arrays data-structures