給定一個大小爲 n 的數組,找到其中的衆數。衆數是指在數組中出現次數大於 ⌊ n/2 ⌋ 的元素。 你能夠假設數組是非空的,而且給定的數組老是存在衆數。 示例 1:算法
輸入: [3,2,3]
輸出: 3
複製代碼
示例 2:數組
輸入: [2,2,1,1,1,2,2]
輸出: 2
複製代碼
咱們來到數組篇,原本第一個題應該一個動態規劃的,我以爲先來個簡單的吧,另一個我組織組織語言再說。 這個題比較容易想到的是給數組排個序,而後獲取中間位置的元素就好。 咱們看另外一個思路吧,遍歷一次的。spa
func majorityElement(nums []int) int {
i, res := 1, nums[0]
for _, v := range nums[1:] {
//不同就--,同樣就++。用個小紙條畫一畫就發現所言非虛
if v != res {
i--
} else {
i++
}
if i <= 0 {
res = v
i = 1
}
}
return res
}
複製代碼
算法夢想家,來跟我一塊兒玩算法,玩音樂,聊聊文學創做,我們一塊兒天馬行空! code