方法一:效率低的方法。數組
給數組搞內外兩個循環,第一個循環是把數組的每個數都遍歷出來,而第二個循環是,除了第一個數組正在遍歷的那個數之外的數進行查找,找到和他同樣的,就結束,不同,再繼續,文字表述太抽象,我都傻了,請看圖!!(按照1-2-3-4一直循環就行),可是效率低。spa
代碼實現:3d
class Solution { public bool duplicate(int[] numbers, int[] duplication) { //數組遍歷 for(int i = 0; i < numbers.Length; i++) { //拋去遍歷數組的第一個數後,開始遍歷,尋找相同的那個數 for(int j = i + 1; j < numbers.Length; j++) { //若是相同,則輸出 if(numbers[i]==numbers[j]) { duplication[0]=numbers[i]; return true; } } } //若是沒有,則返回false return false; } }
方法二:搞一個隊列code
先看圖:blog
啥意思呢:就是建一個隊列,遍歷一遍,若是隊列裏有重複的數,中止;沒有的話,繼續搞,用到一個.Contains。隊列
代碼實現:it
using System.Collections.Generic; class Solution { public bool duplicate(int[] numbers, int[] duplication) { // write code here //爲0時的判斷 if(numbers.Length==0) return false; //建個隊列 Queue<int> que=new Queue<int>(); //循環 for(int i=0;i<numbers.Length;i++) { //隊列裏有的話,duplication[0]=numbers[i];返回ture if(que.Contains(numbers[i])) { duplication[0]=numbers[i]; return true; } //不然,把這個數加到隊列裏 else { que.Enqueue(numbers[i]); } } return false; } }