如何检查 O(N) 时间复杂度的多重集中是否有 2 个或更多元素具有相同的值
How check if there is 2 or more elements with the same value in a multiset in O(N) time complexity?
>我有一个多集/任何带有一些值的容器例如 {1,2,3,4,5,5} -->这将返回一些值;{1,2,3,4,5} --> 将返回一些其他值;
我正在尝试找出容器中是否有任何重复项,在 O(N( 中时间复杂度。
由于std::multiset
是一个有序容器,因此任何重复项都是连续的。std::adjacent_find
算法搜索连续相同的元素(线性复杂度(。
下面是一个简单的布尔函数,用于测试重复的int
值。
#include <algorithm>
bool has_duplicates(const std::multiset<int> &mset)
{
return std::adjacent_find(mset.begin(), mset.end()) != mset.end();
}
相关文章:
- 检查 2D 网格的某个元素是否与另一个元素共享对角线、水平线或垂直线
- 检查 TinyXML 中的元素是否存在
- 程序来检查两个数组的相似元素
- 如何检查映射值中是否存在元素
- 如何使用谷歌测试检查两个枚举类元素的相等性?
- 有没有办法搜索向量的元素,<String>然后检查它是否包含特定的字符,如果它确实打印了它
- 检查HTML 5视频元素是否正在获取帧
- 如何在C中检查随机数列表中的元素
- 在c++中,如何检查一个数组的元素是否也是另一个数组中的元素
- C++如何获取索引I处的元素,并检查它在向量或数组中是否为空
- 是否有更有效的方法来检查元素是否在给定的区间内
- 如何检查数组的 3 个元素是否具有相同的值
- 如何检查 2 个 c++ 数组在 O(1) 或 O(log n) 时间复杂度中是否相同(所有元素都相同,顺序很重要)?
- 检查指针是否指向矢量元素
- 如何检查数组是否包含多个元素?
- 如何检查单向链表的每个 3 个元素,然后删除其中一些元素?
- 如何检查 std::vector<std::string> 的元素是否以某个子字符串开头?
- 如何检查所有随机数组元素是否不同
- 检查元素是否存在于二维矢量中
- C++:检查向量中的元素是否大于另一个具有相同索引的元素的有效方法?