這篇文章主要為大家展示了“LeetCode如何找出數(shù)組中出現(xiàn)次數(shù)超過(guò)一半的數(shù)字”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“LeetCode如何找出數(shù)組中出現(xiàn)次數(shù)超過(guò)一半的數(shù)字”這篇文章吧。
創(chuàng)新互聯(lián)網(wǎng)站設(shè)計(jì),為客戶量身定制各類(lèi)網(wǎng)站建設(shè)業(yè)務(wù),包括企業(yè)型、電子商務(wù)型、成都響應(yīng)式網(wǎng)站建設(shè)、行業(yè)門(mén)戶型等各類(lèi)網(wǎng)站,實(shí)戰(zhàn)經(jīng)驗(yàn)豐富,成功案例眾多。以客戶利益為出發(fā)點(diǎn),創(chuàng)新互聯(lián)網(wǎng)站制作為客戶規(guī)劃、按需求定制制作符合企業(yè)需求、帶有營(yíng)銷(xiāo)價(jià)值的網(wǎng)絡(luò)建站方案認(rèn)真對(duì)待每一個(gè)客戶,我們不用口頭的語(yǔ)言來(lái)吹擂我們的優(yōu)秀,成百上千家的成功案例見(jiàn)證著我們的成長(zhǎng)。
數(shù)組中有一個(gè)數(shù)字出現(xiàn)的次數(shù)超過(guò)數(shù)組長(zhǎng)度的一半,請(qǐng)找出這個(gè)數(shù)字。
你可以假設(shè)數(shù)組是非空的,并且給定的數(shù)組總是存在多數(shù)元素。
1 <= 數(shù)組長(zhǎng)度 <= 50000
輸入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 輸出: 2
[1,2,3]
, 利用此方法得到的最終候選者為 3, 但它并不是多數(shù)元素, 只是恰好最后一個(gè)被選出來(lái)的候選者而已.O(N)
O(1)
class Solution:
def majorityElement(self, nums: List[int]) -> int:
# 初始化候選者和計(jì)數(shù)
res = nums[0]
cnt = 1
for x in nums[1:]:
if x == res:
# 當(dāng)前元素等于候選者, 計(jì)數(shù)值+1
cnt += 1
else:
# 否則計(jì)數(shù)值-1
cnt -= 1
if cnt < 0:
# 如果計(jì)數(shù)值小于0的話, 就說(shuō)明之前保存的候選者現(xiàn)在被淘汰了, 將當(dāng)前元素變?yōu)樾碌暮蜻x者, 并重置計(jì)數(shù)值為1
res = x
cnt = 1
return res
以上是“LeetCode如何找出數(shù)組中出現(xiàn)次數(shù)超過(guò)一半的數(shù)字”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)站題目:LeetCode如何找出數(shù)組中出現(xiàn)次數(shù)超過(guò)一半的數(shù)字
當(dāng)前路徑:http://jinyejixie.com/article4/iepjie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、微信公眾號(hào)、企業(yè)網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站營(yíng)銷(xiāo)、App開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)