【问题标题】:Cannot find duplicates in array [duplicate]在数组中找不到重复项[重复]
【发布时间】:2015-01-27 18:41:17
【问题描述】:

我需要在这个方法中找到重复的数字。我试过这个,但我认为我错过了一些东西。任何人都可以看到我做错了什么。


 public bool FindDublicate(int[] a)
    {
         bool svar = true;
        for (int i = 0; i < a.Length; i++)
        {

            for (int j = i; j < a.Length - 1; j++)
            {
                if (a[j] == a[j + 1])
                {
                    svar = true;
                }
                else return false;
            }
        }
        return svar;
    }

【问题讨论】:

  • @Mayank 其实不是,这个问题是比较 两个 数组。这是在单个数组中寻找重复项。
  • @BradleyDotNET 哦,我的错
  • 您只将每个元素与下一个元素进行比较,例如(0, 1, 0) 您的代码不会将两个零视为重复项。您想将a[i]a[j] 进行比较。
  • 你的逻辑是错误的else return false;只要没有找到一个重复,并不意味着没有重复。
  • 谢谢@500-InternalServerError,我只是错过了

标签: c#


【解决方案1】:

如果您只想知道您的数组是否包含重复项,您可以这样做:

return a.Distinct().Count() != a.Length;

【讨论】:

  • 如果没有重复,这将返回 true。
  • @CriketerOnSO 您的代码错误,他想查找重复项,因此您需要!= 而不是==
  • 感谢 Habib 和@Greg。修改条件。
猜你喜欢
  • 1970-01-01
  • 2013-07-31
  • 2018-05-16
  • 2014-08-08
相关资源
最近更新 更多