程式設計訓練第四十四期 多數元素

2021-10-22 10:59:24 字數 755 閱讀 2708

給定乙個大小為 n 的陣列,找到其中的多數元素。多數元素是指在陣列**現次數 大於 ⌊ n/2 ⌋ 的元素。你可以假設陣列是非空的,並且給定的陣列總是存在多數元素。

1.雜湊表

時間複雜度o(n)。我們遍歷陣列 nums 一次,對於 nums 中的每乙個元素,將其插入雜湊表都只需要常數時間。如果在遍歷時沒有維護最大值,在遍歷結束後還需要對雜湊表進行遍歷,因為雜湊表中占用的空間為 o(n),那麼遍歷的時間不會超過 o(n)。因此總時間複雜度為 o(n)。

空間複雜度o(n)

class

solution

}return res;}}

;

2.排序

時間複雜度o(n log n)

空間複雜度o(log n)

class

solution

};

3.摩爾投票法

投票法是遇到相同的則票數 + 1,遇到不同的則票數 - 1。由於題目中要求「多數元素」,滿足個數》 ⌊ n/2 ⌋,因此其餘元素的個數總和<= ⌊ n/2 ⌋,即「多數元素」的個數 - 其餘元素的個數總和 的結果 肯定 >= 1。這就相當於每個「多數元素」和其他元素兩兩相互抵消,抵消到最後肯定還剩餘至少1個「多數元素」。

時間複雜度o(n)

空間複雜度o(1)

class

solution

}return res;}}

;

Android第四十四期 登入介面的動畫

這次是需求有點無語,不過還是做出來了,效果如下,這回要講講,有點複雜,以後自己估計都忘了,記錄一下 動畫類animalutul public class animalutul public void setstarttime long starttime public animalutul cont...

實習篇 第四十四天

昨天系統公升級,我擔心的一夜沒有睡好覺,準確的說是這一周都沒有睡個好覺,整天是提心吊膽的,順理成章的我也感冒了!有句話說的好 只有在你生病的時候最想家!但是這一次,這種感覺竟被工作上的事給壓了下去!上午來到公司就聽見經理打 說系統更改過密碼之後提示有錯誤,我隱隱約約感到有問題。果然不出所料,下午問題...

演算法 日更 第四十四期 虛二叉樹

前言 小編菜歸菜,但是好歹也寫過幾篇關於樹的部落格 線段樹 劃分樹 紅黑樹 如果你已經會了這些樹,那麼你一定會認為樹很麻煩,很燒腦。其中的紅黑樹是一種二叉排序樹實現自平衡的樹,但是最煩人,線段樹和劃分樹都很好寫,而紅黑樹不僅要建樹 查詢,還要再實現自平衡。但是虛二叉樹和紅黑樹功能一樣,只不過更大的優...