a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C > 正文

C語言數組中重復的數字分析及方法

2020-02-24 14:31:34
字體:
來源:轉載
供稿:網友

數組中的數字是連續的,但數組中的一個數字重復,要怎么找出這個數呢?武林技術頻道就這個問題簡單為大家介紹C語言數組中重復的數字分析及方法,希望對你學習這方面知識有幫助!

C語言 數組中重復的數字解決方法:

題目:在一個長度為n的數組里的所有數字都在0-n-1的 范圍內。數組中某些數字是重復的,但是不知道有幾個數字重復了,也不知道每個數字重復了幾次。請找出數組中任意一個重復的數字。例如,如果輸入長度為7的數組{2,3,1,0,2,5,3},那么對應的輸出是重復的數字2或者3.

解法1:對于數組進行排序,之后對于已經排序的數組進行遍歷便可知道數組中重復的數字。

時間復雜度;O(nlogn);

解法2:建立一個大小為O(N)的哈希表,遍歷數組中的元素并判斷是否存在于哈希表中。若不存在于哈希表中,將這個元素加入哈希表之中并且繼續掃描,若這個元素存在于哈希表中,則:找到了數組中重復的一個數字;

時間復雜度:O(N),空間復雜度:O(N);

解法3:對于給定的數組進行重排。對于下標為i的元素:如果a[i] == i,掃描下一個元素;如果不相等將a[i]與a[a[i]]進行比較,若是相等則找到了一個重復的數字,若沒有,那么對于數字進行交換,依次進行。

?

int DuplicateInArray(int arr[],int size) {   int i=0;   while(i<size)   {     if(arr[i] == i)       ++i;     else     {       if(arr[i] != arr[arr[i]])       {swap(arr[i],arr[arr[i]]);}       else       {return arr[i];}     }   }   return -1; } 以上就是小編收集的C語言數組中重復的數字分析及方法!其實這個行業的發展前景也非常的不錯,小編建議對這方面感興趣的朋友可以抓住機會學習一下哦!
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 国产视频精品视频 | 日本高清视频一区二区三区 | 久久精品一区二区三区四区毛片 | 中文字幕不卡av | 91 在线观看 | 亚洲精品国产9999久久久久 | 精品久久久久久久久久久久久久 | 亚洲成av人片在线观看 | 国产日韩欧美一区二区 | 日韩一区二区中文字幕 | 久久精品一区二区三区四区 | 久久久免费精品 | 久久成人国产精品 | 国产精品888| 欧美视频在线播放 | 欧美亚洲二区 | 色欧美片视频在线观看 | 男女网站视频 | 在线视频 亚洲 | 亚洲毛片在线观看 | 欧美日韩一区免费 | 亚洲国产精品久久久久秋霞蜜臀 | 欧美精品一区二区三区免费视频 | 欧美一区二区伦理片 | 国产精品美女视频免费观看软件 | 久久久久国产一区二区三区 | 日本成人一区二区 | 精品一区二区三区免费 | 91精品国产综合久久精品 | 色女人天堂 | 国产日韩视频 | 国产在线观看欧美 | 亚洲热在线观看 | 精品久久一 | 国产成人jvid在线播放 | 伊人免费视频二 | 日本欧美一区 | 久久精品福利 | 国产精品一区在线观看你懂的 | 午夜精品久久久久久99热软件 | 成人av一区二区三区 |