gpt4 book ai didi

c++ - 如何在 C 或 C++ 的 O(n) 中删除数组中的重复元素?

转载 作者:可可西里 更新时间:2023-11-01 17:08:36 27 4
gpt4 key购买 nike

是否有任何方法可以在 O(n) 的 C/C++ 中删除数组中的重复元素?假设元素是 a[5]={1,2,2,3,4}那么结果数组应该包含 {1,2,3,4}该解决方案可以使用两个 for 循环来实现,但我相信那将是 O(n^2)。

最佳答案

当且仅当源数组已排序,这可以在线性时间内完成:

std::unique(a, a + 5); //Returns a pointer to the new logical end of a.

否则你必须先排序,这是(99.999% 的时间)n lg n

关于c++ - 如何在 C 或 C++ 的 O(n) 中删除数组中的重复元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3432760/

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