有没有一种快速的方法可以找到元素 vector 中的所有单个元素(只出现一次)? vector 中的所有元素都是单元素或双元素(出现两次)。我的答案是对所有元素进行排序,然后删除重复出现的元素。有什么更快的方法吗?
最佳答案
因此对于足够小的 n (<=1e8) 排序和删除(使用 std::sort()
和 std::unique
)方法仍然比散列更快表格。
示例代码:O(n log n)
vector<int>A = {1,2,3,1,2,5};
sort(A.begin(),A.end());
A.erase(unique(A.begin(),A.end()),A.end());
for(int&x:A)
cout<<x<<" ";
关于c++ - 查找 vector C++ 的唯一元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56033676/