C#实现如何判断一个数组中是否有重复的元素 返回一个数组升序排列后的位置信息--C#程序举例 求生欲很强 ...

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:03   2589   0

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

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

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

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

按 Ctrl+C 复制代码
按 Ctrl+C 复制代码

方法二:使用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         }
复制代码

运行结果:

程序源代码工程下载

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

返回一个数组升序排列后的位置信息--C#程序举例

返回一个数组升序排列后的位置信息--C#程序举例

返回某一个数组升序排序后的位置 比如:{8,10,9,11}排序后应该是{8,9,10,11},但是需要返回{1,3,2,4} 大概记忆里是这么个意思很明显这是一个算法题

同样这是一个面试题做倒是做出来了,但是效率太低了,我都看不上自己做的,感谢面试官给出的提示:这为什么要排序呢?

是的,这根本不需要排序,只需要找出比 对比的元素小的元素个数即可(有了这个思路)可以写篞B!V(0R B.r' & jB30cJ3>G&"v\bRv**_>Djb"G7rB*Σ*'"G1 Bn"C""Ggj曎+3>j9 /r jB33>Σ((((((((((

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP