|
|
1
6
让我们努力取得最好的成绩。如果n是列表的数目,m是列表的长度,那么我们可以得到O(n) logn+n)加上哈希码在不同列表中相等的概率。
*这是重要的一步。对于simlicity,可以将哈希计算为=。。。^(列表[i]<<i)^(列表[i+1]<<(i+1)) 对于那些认为PLINQ可以促进事情,但不是好算法的人来说。PLINQ也可以添加到这里,因为所有的步骤都很容易并行化。 我的代码:
|
|
|
2
3
除非您正在做一些非常繁重的工作,否则以下简单的代码可能适合您:
(另外,由于LINQ的强大功能,通过向上述代码添加一个.AsParallel()调用,该算法将在多个内核上运行,因此运行速度可能比本线程中提到的复杂、手工调整的解决方案更快。) |
|
|
3
2
类似的操作将为您提供正确的结果:
|
|
|
4
2
算法:
我有一些示例代码。缺少的位是:
代码如下:
|
|
5
1
下面是一个潜在的想法(假设值是数字): 实现一个比较器,将每个集合的每个成员乘以其索引,然后求和:
成员校验和:170
|
|
|
6
1
如果重复数据非常罕见或非常常见,您也可以尝试概率算法。e、 通用航空公司 bloom filter |
|
7
1
写你自己的列表比较器怎么样:
|
|
|
8
1
如果它们都是一位数,并且元素的数量相同,那么可以将它们放在一起,第一个是123456,并检查数字是否相同。
这是更容易检查重复,如果个别成员可以超过10你将不得不修改这个。
|
|
|
9
1
这里已经有很多很好的解决方案,但我相信这一个会一直运行得最快 除非 有些数据结构你还没有告诉我们。
如果您有N个非重复项,并且M个项是K个项中的重复项,那么您需要O(N+M+2K)来创建初始哈希映射,最坏的情况是O(M logm)来进行排序(可能更像O(M log(M/K)),O(M)来进行最终的相等性测试。 |
|
|
10
0
C# 3.0: Need to return duplicates from a List<> 它向您展示了如何从列表中返回重复项。
|
|
|
feasega · 聚合物模拟-2个节点之间的最短路线,适用于所有节点 11 月前 |
|
|
Alisa Petrova · 在有向图中更改一对顶点以创建循环 11 月前 |
|
|
Pengcheng · 这个简单的递归函数的输出是什么?你能详细解释一下吗? 11 月前 |
|
|
b39b332d · 使用C++标准库实现高效间隔存储 1 年前 |
|
ABGR · 二叉树的直径——当最长路径不通过根时的失败案例 1 年前 |
|
|
EpicAshman · 数独棋盘程序中同一列和同一行出现两次的数字 1 年前 |