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