高頻算法面試題(數組)leetcode 169. 求衆數

leetcode 169. 求衆數

給定一個大小爲 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

在這裏插入圖片描述
相關文章
相關標籤/搜索