gpt4 book ai didi

arrays - 不使用哈希表从数组中删除重复项

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

我有一个数组,它可能包含重复的元素(一个元素的两个以上的副本)。我想知道是否有可能找到并删除数组中的重复项:

  • 不使用哈希表(严格要求)
  • 不使用临时辅助阵列。对复杂性没有限制。

附言:这不是家庭作业问题

在雅虎技术面试中被问到我的 friend

最佳答案

对源数组进行排序。找到相等的连续 元素。 (即 std::unique 在 C++ 领域的作用)。总复杂度为 N lg N,如果输入已经排序,则仅为 N。

要删除重复项,您可以在线性时间内将数组中后面的元素复制到数组中前面的元素上。只需保留一个指向容器新逻辑端的指针,并在每一步将下一个不同的元素复制到该新逻辑端。 (同样,与 std::unique 完全一样(事实上,为什么不直接下载 an implementation of std::unique 并完全按照它的要求做呢?:P))

关于arrays - 不使用哈希表从数组中删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4395668/

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