我有以下任务(作为更大任务的一部分):
我需要k
从像数据结构这样的数组中取出一个元素并将其删除(k 是任何可能的索引)。数组有 O(n) 用于删除元素,而 List 有 O(n) 用于搜索元素。我想在 O(1) 时间内完成这两项操作。
我应该使用哪种数据结构来满足这个要求?
澄清:
删除 index(5) 上的元素会将元素从 index(6) 移动到 index(5)。
这个特殊的任务是 topcoder srm 300 div2 500 points 问题。它不需要如此复杂的数据结构(简单的 java 方法就可以完成这项工作,因为最大数据非常小),但我很好奇如何使用类似 c 的数据思考来处理更大的问题。
所以也许我对这个问题坚持很多?但我会在下班后分析它并编辑问题(如果你真的很好奇,你可以在顶级编码器上看到任务)。