日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > php開(kāi)源 > php教程 > 《劍指offer》:[51]數(shù)組中的重復(fù)數(shù)字

《劍指offer》:[51]數(shù)組中的重復(fù)數(shù)字

來(lái)源:程序員人生   發(fā)布時(shí)間:2016-08-22 09:16:56 閱讀次數(shù):3020次
題目:在1個(gè)長(zhǎng)度為n的數(shù)組里所有數(shù)字都在0到n⑴的范圍里。數(shù)組中某些數(shù)字是重復(fù)的,但是不知道有幾個(gè)數(shù)字重復(fù)了,也不知道每一個(gè)數(shù)字重復(fù)幾次。請(qǐng)找出數(shù)組中任意1個(gè)重復(fù)的數(shù)字。例如,如果輸入長(zhǎng)度為7的數(shù)組{2,3,1,0,2,5,3},那末對(duì)應(yīng)的輸出是重復(fù)的數(shù)字2或3.
   分析:其實(shí)這個(gè)題由于它的限制太多,這樣是這個(gè)題失去了泛型,比如里面的數(shù)字的范圍肯定在0到n⑴內(nèi),還有任意意對(duì)便可,不能對(duì)任意的數(shù)組進(jìn)行查重操作。下面先來(lái)看看這個(gè)問(wèn)題怎樣解決吧!
方案1:時(shí)間復(fù)雜度為O(N*N)的順序掃描法。從第1個(gè)掃描到最后,順次進(jìn)行第2個(gè)....1定能找出。
方案2:時(shí)間復(fù)雜度為O(N)+輔助空間O(N)的哈希表。將每一個(gè)數(shù)映照到哈希表,掃描1遍能統(tǒng)計(jì)出所有數(shù)字出現(xiàn)的次數(shù)。然后掃描哈希表能在O(1)的時(shí)間內(nèi)得到該數(shù)據(jù)出現(xiàn)的次數(shù)。這樣便能找到重復(fù)的數(shù)字了。
方案3:時(shí)間復(fù)雜度為0(N),并且不要輔助空間。
思想是這樣的:順序掃描數(shù)組的每一個(gè)數(shù)字。當(dāng)掃描到下標(biāo)為i的數(shù)字時(shí),比較該數(shù)字M是否是與下標(biāo)i相等,如等,掃描下1個(gè);如不等,再把它M和下標(biāo)為M的數(shù)字相比較,如果相等,則找到1個(gè)返回;如果不等,則交換它們的值。

以數(shù)組a[7]={2,3,1,0,2,5,3}為例,分析以下圖所示:


具體實(shí)現(xiàn)代碼以下:
#include <iostream> using namespace std; int arr[7]={2,3,1,0,2,5,3}; void Swap(int &a,int &b) { int temp; temp=a; a=b; b=temp; } bool duplicate(int array[],int length,int *duplication) { if(array==NULL || length<0) return false; for(int i=0;i<length;i++) { if(array[i]<0 || array[i]>length⑴ ) return false; } for(int i=0;i<length;++i) { while(array[i]!=i) { if(array[i]==array[array[i]]) { *duplication=array[i]; return true; } Swap(array[i],array[array[i]]); } } return false; } int main() { int result; bool res; res=duplicate(arr,7,&result); if(res) cout<<"重復(fù)的數(shù)是:"<<result<<endl; else cout<<"數(shù)據(jù)里沒(méi)有重復(fù)的數(shù)!"<<endl; system("pause"); return 0; }

運(yùn)行結(jié)果:


生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線(xiàn)----------------------------
分享到:
------分隔線(xiàn)----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 日韩在线观看一区 | 欧美极品少妇xxxxⅹ喷水 | 国产乱码精品一区二区三区五月婷 | 国产精品国产三级国产aⅴ原创 | 久久精品视频免费观看 | 懂色av 粉嫩av 蜜乳av | 操操操日日日 | 在线视频日韩精品 | 国产在线一区二区三区四区 | 国产成人免费在线 | 人人看人人模 | 国产精品免费一区二区三区都可以 | 国产精品不卡一区 | 欧美黄色片 | 538国产精品视频一区二区 | 曰韩一级片 | 一区二区三区 | 美女福利视频网站 | 久久久亚洲一区 | 一级在线观看 | 国产精品一区二区三区四区 | 在线观看视频免费播放 | 国产精品久久免费视频 | 一区二区自拍 | 国产在线精品视频 | 中文字幕日韩专区 | 国产精品不卡视频 | 日韩中文字幕在线播放 | 日韩欧美在线视频一区二区三区 | 色久天 | 国产一区二区三区欧美 | 日本一区二区三区四区在线观看 | 精品久久久一区二区 | 欧美午夜一区二区福利视频 | 黄色在线观看免费视频 | 天天插天天射天天操 | 日韩av片在线 | 玖玖视频| 免费观看亚洲 | 国产激情91久久精品导航 | 正在播放日韩 |