【发布时间】:2011-03-27 06:10:20
【问题描述】:
假设有一个列表。列表中的每个项目都有一个唯一的 ID。
List [5, 2, 4, 3, 1]
当我从这个列表中删除一个项目时,该项目的唯一 ID 会随之而来。
List [5, 2, 3, 1]
现在假设我想在列表中添加另一个项目,并为其指定最低的唯一 ID。
向列表中添加新项目时获得最低唯一 ID 的最简单方法是什么?
这里有一个限制:如果我在删除一个项目时没有重新分配另一个项目的唯一 ID,我会更喜欢它。
我意识到,如果我在删除 4 时将唯一 ID 5 重新分配给唯一 ID 4,将很容易找到唯一 ID。然后我可以获得列表 (5) 的长度并创建具有唯一 ID 的新项目用那个号码。
那么还有另一种方法,不涉及遍历整个列表?
编辑:
语言是java,但我想我正在寻找一个通用算法。
【问题讨论】:
-
您使用什么语言?另外:在这种情况下,您对“uniqueidentifier”标签的使用可能不正确。您能看看是否有其他标签可以更好地为您服务吗?
-
优先队列是一个很好的数据结构,无论如何都可以学习,并且是解决问题的好方法。但是,我想知道,如果只是一个简单的列表就可以了。您需要最低而不只是确保重复使用漏洞,是否有特殊原因?