• C#实现如何判断一个数组中是否有重复的元素


     如何判断一个数组中是否有重复的元素 

    实现判断数组中是否包含有重复的元素方法 这里用C#代码给出实例

    方法一:可以新建一个hashtable利用hashtable的Contains方法进行查找

     1         /// <summary>
     2         /// Hashtable 方法
     3         /// </summary>
     4         /// <param name="array"></param>
     5         /// <returns></returns>
     6         public static bool IsRepeat(int[] array)
     7         {
     8             Hashtable ht = new Hashtable();
     9             for (int i = 0; i < array.Length; i++)
    10             {
    11                 if (ht.Contains(array[i]))
    12                 {
    13                     return true;
    14                 }
    15                 else
    16                 {
    17                     ht.Add(array[i], array[i]);
    18                 }
    19             }
    20             return false;
    21         }

    方法二:使用for循环进行比较  需要注意的是j<=i    如果只是等于,实际上效率偏低,有重复计算可以自己摸索,有时间我画个图出来,^_^(这里感谢面试官的提醒)

     1         /// <summary>
     2         /// for循环
     3         /// </summary>
     4         /// <param name="yourValue"></param>
     5         /// <returns></returns>
     6         public static bool IsRepeat2(int[] array)
     7         {
     8             for (int i = 0; i < array.Length; i++)
     9             {
    10                 for (int j = 0; j < array.Length; j++)
    11                 {
    12                     if (j <= i)
    13                     {
    14                         continue;
    15                     } 
    16                     if (array[i] == array[j])
    17                     {
    18                         return true;
    19                     }
    20                 }
    21             }
    22             return false;
    23         }

    测试代码:

     1         static void Main(string[] args)
     2         {
     3             int[] array = new int[] { 1,2,3,4,3,6,7,8};
     4             int[] array2 = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };
     5             Console.WriteLine("---------------包含重复元素----------------");
     6             bool isrepeat = IsRepeat(array);
     7             bool isrepeat2 = IsRepeat2(array);
     8             Console.WriteLine(isrepeat);
     9             Console.WriteLine(isrepeat2);
    10 
    11             Console.WriteLine("---------------不包含重复元素----------------");
    12             bool isrepeat3 = IsRepeat(array2);
    13             bool isrepeat4 = IsRepeat2(array2);
    14             Console.WriteLine(isrepeat3);
    15             Console.WriteLine(isrepeat4);
    16             Console.Read();
    17         }

    运行结果:

    程序源代码工程下载

    各位好汉如果有更好的方法能够优化程序,减少计算的次数,麻烦给出,感激!

  • 相关阅读:
    Python 特殊语法:filter、map、reduce、lambda
    db2 常用命令(二)
    db2 常用命令(一)
    java 基础
    No.16 selenium学习之路之异常处理
    python之assert断言
    python之uinttest单元测试框架
    测试用例
    No.15 selenium for python JavaScript
    No.14 selenium for python table表单
  • 原文地址:https://www.cnblogs.com/JiYF/p/8799492.html
Copyright © 2020-2023  润新知