給定乙個大小為 n 的陣列,找到其中的多數元素。多數元素是指在陣列**現次數大於 ⌊ n/2 ⌋ 的元素。
你可以假設陣列是非空的,並且給定的陣列總是存在多數元素。
示例 1:
輸入: [3,2,3]示例 2:輸出: 3
輸入: [2,2,1,1,1,2,2]利用count函式可以返回陣列中元素出現的次數n輸出: 2
nn,如果n
>si
ze/2
n>size/2
n>si
ze/2
,返回這個元素。
class
solution
}return-1
;}};
時間複雜度:count進行一次迴圈遍歷,外層又進行了一次迴圈遍歷,時間複雜度為o(n
2)
o(n^2)
o(n2
)最終candidate就是眾數
因為眾數的數量大於其他任何數,所以無論怎麼-1,眾數的count總不為0
//c++
class
solution
}return candidate;}}
;
//go
func
majorityelement
(nums [
]int
)int
//當前元素為多數元素時計數加一,否則減一
if nums[i]
!= candidate
else
}return candidate
}
時間複雜度:o(n
)o(n)
o(n)
空間複雜度:o(1
)o(1)
o(1)
LeetCode 169 多數元素
給定乙個大小為 n 的陣列,找到其中的多數元素。多數元素是指在陣列 現次數大於 n 2 的元素。你可以假設陣列是非空的,並且給定的陣列總是存在多數元素。示例 1 輸入 3,2,3 輸出 3 示例 2 輸入 2,2,1,1,1,2,2 輸出 2 思路一 既然是多數且超過n 2,那麼排序之後,這些數中間...
LeetCode 169 多數元素
題目描述 給定乙個大小為 n 的陣列,找到其中的多數元素。多數元素是指在陣列 現次數大於 n 2 的元素。你可以假設陣列是非空的,並且給定的陣列總是存在多數元素。法 1 直接遍歷 時間複雜度 o n 2 空間複雜度 o 1 public intmajorityelement1 int nums if...
leetcode169 多數元素
用乙個變數和計數器輔助,變數存放當前元素的值a,計數器統計當前元素出現次數n 如果遇到的元素和a不一樣,則n減一,如果n為零,則把a替換成遇到的元素,b設為1 最後的a即為要求的多數元素 class solution count candidate num 1 1 return candidate ...