C#實現如何判斷一個數組中是否有重複的元素
如何判斷一個數組中是否有重複的元素
實現判斷陣列中是否包含有重複的元素方法 這裡用C#程式碼給出例項
方法一:可以新建一個hashtable利用hashtable的Contains方法進行查詢
1 /// <summary> 2 /// Hashtable 方法 3 /// </summary> 4 /// <param name="array"></param> 5 /// <returns></returns> 6 publicstatic 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 }
執行結果:
各位好漢如果有更好的方法能夠優化程式,減少計算的次數,麻煩給出,感激!
相關推薦
C#實現如何判斷一個數組中是否有重複的元素
如何判斷一個數組中是否有重複的元素 實現判斷陣列中是否包含有重複的元素方法 這裡用C#程式碼給出例項 方法一:可以新建一個hashtable利用hashtable的Contains方法進行查詢 1 /// <summary> 2 /// Hash
JS判斷一個數組中是否有重複值的三種方法
參考 http://superivan.iteye.com/blog/1131328 var ary = new Array("111","22","33","111"); var s = ary.
c實現 求一個數組中最大子序列的和 (兩種方法)
||_ 題目描述 ||_ 分析 本題的核心是計算出一個序列的所有子序列中元素和為最大時的值,不要求輸出對應的子序列是什麼,而只要求輸出和的最大值是多少。 法一: 我們把序列分成兩半(左邊
C中程式設計實現,一個數組中只有兩個數不是成對出現,找出這兩個數
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> void Find(int *arr, int sz, int *p1, int *p2) { int num = 0; int i
C#中怎麼判斷一個數組中是否存在某個陣列值
(1) 第一種方法: int[] ia = {1,2,3}; int id = Array.IndexOf(ia,1); // 這裡的1就是你要查詢的值 if(id==-1) // 不存在 else // 存在 (2) 第二種方法: string[] strArr =
【C語言】一個數組中只有兩個數字是出現一次,其他所有數字都出現了兩次。 找出這兩個數字,程式設計實現。
一看到這道題,我想到了之前學習過的異或。我們知道兩個相同的數字異或的結果是 0,因為在計算機中,異或運算是按照二進位制位來運算的,相同為 0 ,相異為 1。任何數與 0 異或都等於它自己。既然我們要找出來一組數中不同的兩個數字,也可以採用這種方法。 但是這次不是直接異或,
C語言實現:一個數組中只有兩個數字是出現一次,其他所有數字都出現了兩次。
思路:異或陣列中的每一個數,最終出現的結果是兩個只出現一次數字的異或結果,,因為兩個陣列不一樣,所以異或結果不為0,二進位制結果有一個是1.在結果中找到第一個為1的位置,記為n,然後陣列右移n位,為1,為0,分別輸出兩個數#include <stdio.h> #i
c語言 將一個數組中的奇數和偶數分開放在一起
在一個數組中的元素大多奇數和偶數是混在一起的,而將陣列中元素奇數和偶數分開存放則是我們要解決的問題。 將奇數和偶數分開存放然後打印出來的思路是先建立兩個空間,將奇數和偶數分別存放起來,然後
Java總雜湊表的運用,判斷一個數組中是否存在相同的元素之間的距離在k以內!
Check if a given array contains duplicate elements within k distance from each other 用雜湊表,複雜度O(n),
【C語言】一個數組中只有兩個數字是出現一次,其他所有數字都出現了兩次。 找出這兩個數字。
要求:一個數組中只有兩個數字是出現一次,其他所有數字都出現了兩次。 找出這兩個數字,程式設計實現。程式設計實現。 程式碼如下 int find(int arr[],int len) { int i,j,count; for(i = 0;i
使用jQuery判斷一個數組中是否包含某個值
1、當需要在前端為陣列去重的時候,可以使用jQuery的inArray方法來判斷。 2、具體操作如下: var array = ['a','ab','abc']; $.inArray('abc',array);下標從0開始,若結果為-1則表示此陣列中不存在這個值。
如何判斷一個數組中是否包含一個字元或字串
第一種方法:遍歷陣列 String[] arr1 = {"1","2","3","4","6","7"}; for (int i = 0; i < arr1.length; i++) {if("
判斷一個數組中是否包含某個字串
1.public bool isExist(string[] ss, string str) { List<string> ls = new List<string>(ss); foreach
java 判斷一個數組中的數值是否連續相鄰
* 判斷一個數組中的數值是否連續相鄰 * 滿足以下條件: * 1.0是例外可以反覆出現 0可以通配任何字元 * 2.相同的數值不
python實現 從一個數組中找到完全含有另一個數組元素的最短子陣列
#找出陣列strW中包含strA所有元素的最少情況 strA=['testing','pattern'] strW=['hello','this','is','a','testing','page','description','testing','pattern','al
如何判斷一個數組中的數值是否連續相鄰
問題 一個整數數列,元素取值可能是0~65535中的任意一個數,相同數值不會重複出現;0是個例外,可以反覆出現。設計一個演算法,當從該數列中隨意選取5個數值時,判斷這5個數值是否連續相鄰。需要注意一下
C++:將一個數組的前m個元素和後n-m個元素整體互換位置
笨方法 >_< #include <iostream> using namespace std; int main() { int n,m,i,j; int a[100]; cout<<"請輸入要建立陣列的長度(不能超過100)
從一個數組中抽取不同的元素
public function j() { $user = array(1,1,2,1,1,1,1,1,9); $draw_user = []; $num = 3; for ($i=0; $i < $num; $i++) { $user_key = array_ran
【演算法】刪除一個數組中為0的元素
題目描述: 給定一個一維陣列,將其中為0的元素刪除掉,非零元素的相對位置保持不變,最終目標陣列保留在原陣列中,並且目標陣列長度之外的元素全部置為0。 解題思路: (1)陣列非零元素往前移動,時
php從一個數組中刪除多個元素,獲取陣列鍵值對等……
$array1 = array(1,2,3,4,5,6); $array2 = array(2,3); //1、獲取陣列鍵值對 $arr1 = array_keys($array2); var_dump($arr1); Array ( [0] => 0 [1] =&g