LeetCode刷题记录2——217. Contains Duplicate(easy)
LeetCode刷題記錄2——217. Contains Duplicate(easy)
目錄
LeetCode刷題記錄2——217. Contains Duplicate(easy)
題目
語(yǔ)言
思路
后記
題目
今天這題是與數(shù)組相關(guān)的,題目如下:
題目要求我們判斷一個(gè)整型數(shù)組中有沒(méi)有重復(fù)的出現(xiàn)的數(shù),如果有則返回true,如果沒(méi)有,則返回false。重復(fù)多少次都沒(méi)關(guān)系,只要有重復(fù)就是true。
語(yǔ)言
Java
思路
一看到這題,我想還蠻簡(jiǎn)單的:使用另一個(gè)數(shù)組a[],直接將nums數(shù)組中的數(shù)當(dāng)作數(shù)組a的下標(biāo)來(lái)計(jì)數(shù),比如nums數(shù)組長(zhǎng)這樣:[10,3,10],那么數(shù)組a就是a[10]=1,a[3]=1,a[10]=2,就通過(guò)這樣來(lái)計(jì)數(shù),但是這樣太理想了,因?yàn)閚ums中的數(shù)有可能是負(fù)數(shù),或者是很大很大,這樣的情況這個(gè)方法就失敗了。
后來(lái)我一想,還有更簡(jiǎn)單的,直接暴力,雙重循環(huán)一寫(xiě),雖說(shuō)能通過(guò),但時(shí)間太久了,如下圖:
耗時(shí)太久,所以這個(gè)方法也不合理。
最后的思路還是這樣的:用排序來(lái)優(yōu)化代碼:先把nums數(shù)組中的數(shù)先排序,這樣重復(fù)出現(xiàn)的數(shù)就老老實(shí)實(shí)的成為前后關(guān)系了,你只要判斷當(dāng)前數(shù)跟他后一個(gè)數(shù)相不相等,如果相等就直接return true了,所以只要遍歷一次就夠了。當(dāng)然運(yùn)行時(shí)間肯定是比上面的好很多的:
后記
這題它的lable就是easy,所以說(shuō)難度確實(shí)不高,只是說(shuō)能不能用更好更快的方法來(lái)解決問(wèn)題,所以提醒我們,代碼的質(zhì)量、效率也至關(guān)重要。
總結(jié)
以上是生活随笔為你收集整理的LeetCode刷题记录2——217. Contains Duplicate(easy)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LeetCode刷题记录1——717.
- 下一篇: LeetCode刷题记录3——237.