gpt4 book ai didi

algorithm - 查找数组中的最小唯一编号

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:47:28 24 4
gpt4 key购买 nike

数组中的最小唯一数定义为 min{v|v 在数组中只出现一次例如,{1, 4, 1, 2, 3} 的最小唯一数是 2。有什么比排序更好的方法吗?

最佳答案

我相信这是时间和空间上的 O(N) 解决方案:

HashSet seenOnce;     // sufficiently large that access is O(1)
HashSet seenMultiple; // sufficiently large that access is O(1)

for each in input // O(N)
if item in seenMultiple
next
if item in seenOnce
remove item from seenOnce
add to item seenMultiple
else
add to item seeOnce

smallest = SENTINEL
for each in seenOnce // worst case, O(N)
if item < smallest
smallest = item

如果您的整数值范围有限,您可以将 HashSets 替换为按值索引的 BitArrays。

关于algorithm - 查找数组中的最小唯一编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11944737/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com