溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java實(shí)現(xiàn)數(shù)組中查詢重復(fù)數(shù)字的方法

發(fā)布時(shí)間:2020-08-19 14:18:36 來源:億速云 閱讀:231 作者:小新 欄目:編程語言

這篇文章主要介紹Java實(shí)現(xiàn)數(shù)組中查詢重復(fù)數(shù)字的方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

題目一:找到數(shù)組中重復(fù)的數(shù)字。

在一個(gè)長度為N的數(shù)組里的所有數(shù)字都在0——n-1的范圍之內(nèi),數(shù)組中某些數(shù)字是重復(fù)的,但是不知道有幾個(gè)數(shù)字是重復(fù)了,也不知道數(shù)字重復(fù)了幾次,請(qǐng)找到數(shù)組中任意一個(gè)重復(fù)的數(shù)字。

解決方法一:將這個(gè)數(shù)組排序,從排序的數(shù)組中找到重復(fù)的數(shù)字是一件很容易的事情。只需要從頭到尾掃描排序后的數(shù)組就可以了,排序一個(gè)長度為N的數(shù)組需要O(nLogn)的時(shí)間。

解決方法二:利用哈希表來解決,從頭到尾掃描數(shù)組的每一個(gè)數(shù)字,每次掃描到一個(gè)數(shù)字的時(shí)候,就判斷是否在哈希表中是否有這個(gè)數(shù)字,這個(gè)算法的時(shí)間是O(N),但它的時(shí)間效率是一個(gè)大小為O(N)的哈希表為代價(jià)的。

解決方法三:我們重排這個(gè)數(shù)組,從頭到尾依次掃描這個(gè)數(shù)組中的每一個(gè)數(shù)字,當(dāng)掃描到下標(biāo)為i的數(shù)字的時(shí)候,就比較這個(gè)數(shù)字的值(m)是不是等于i,如果相等,則將m的值付給i,如果不相等,則拿他和m下標(biāo)對(duì)應(yīng)的值比較,直到找到所有重復(fù)的數(shù)值為止。

Java實(shí)現(xiàn)數(shù)組中查詢重復(fù)數(shù)字的方法

以上是Java實(shí)現(xiàn)數(shù)組中查詢重復(fù)數(shù)字的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI