【发布时间】:2010-11-16 09:34:50
【问题描述】:
我有一个任务是创建一个算法来查找包含数值的数组中的重复项。但它没有说是哪种数字、整数或浮点数。我写了以下伪代码:
FindingDuplicateAlgorithm(A) // A is the array
mergeSort(A);
for int i <- 0 to i<A.length
if A[i] == A[i+1]
i++
return A[i]
else
i++
我是否创建了一个有效的算法? 我认为我的算法有问题,它多次返回重复的数字。例如,如果数组包含两个索引中的 2,我将在输出中包含 ...2, 2,...。如何更改它以仅返回每个重复项一次? 我认为它是一个很好的整数算法,但它也适用于浮点数吗?
【问题讨论】:
-
小心使用 A[i+1] -- 如果 i = (A.length - 1),会发生坏事。您希望 for 循环仅在 i
-
对了,谢谢你的指导
标签: algorithm