0

我需要查找int[]数组是否包含重复项。我不能使用集合。

我的解决方案(不起作用)是:

boolean containsDuplicates(int[]list1, int[]list2) {
  if (list1.length != list2.length) {
    return false;
  }
  for (int i = 0; i < list1.length; i++) {
    if (list1[i] != list2[i]) {
      return false;
    }
  }
  return true;
}
4

2 回答 2

2

一个解决方案,在计算周期中不是最好的,但没有内存开销:

  1. 使用索引 M 将数组 A 从 0 迭代到 N 的循环
  2. 使用索引 S 将 A 从 M+1 迭代到 N 的嵌套循环
  3. 如果(A[M]=A[S])返回真
  4. 返回 false(未找到重复项)
于 2013-09-29T10:06:34.650 回答
0
private boolean hasDuplicates(int []inArray)
{
    for(int i = 0; i < inArray.length - 1; i++)
        for(int j = i + 1; j < inArray.length; j++)
            if(inArray[i] == inArray[j])
                return true;
    return false;
}
于 2013-09-29T10:06:47.823 回答