我正在使用具有非重复元素的整数序列,出于某种原因,我尝试通过构建哈希集来删除重复项。
int * a = {123, 145, 210, 77};
int * b = {145, 77, 123, 210}; // should be removed
int * c = {123, 37, 16};
int * d = {123, 145, 72, 91};
Run Code Online (Sandbox Code Playgroud)
是否有顺序不敏感的哈希函数返回相同的结果a和b?
我已经想出了一些解决方案,但它们的表现很差:
排序 - 序列是不可变的,排序将涉及额外的空间和 O(NlogN) 时间。
异或 - 序列中的元素范围从 0 到数百,可能会浪费许多位的哈希值。
还有其他方法吗?