Easy
Related Topics: Array / Hash Table / Divide and Conquer / Sorting / Counting
LeetCode Source
暴力解,統計所有數字出現的個數,選出現次數最多就是答案。
class Solution:
def majorityElement(self, nums: List[int]) -> int:
c = Counter(nums)
return c.most_common()[0][0]
Python 直接作弊用 Counter,但當然時間花費就高
透過 most_common()
,我們可以得知出現次數最多的數字。
class Solution {
public:
int majorityElement(vector<int>& nums) {
std::unordered_map<int, int> map;
for (auto i : nums) {
if (map.find(i) == map.end())
map[i] = 1;
else
map[i] += 1;
}
int res, count = 0;
for (auto n : map) {
if (count < n.second) {
res = n.first;
count = n.second;
}
}
return res;
}
};
C++ 透過 unordered_map<int, int>
統計數字和它出現的次數
統計完後,再跑一個迴圈找最大值