Easy
Related Topics: Array / Hash Table / Divide and Conquer / Sorting / Counting
LeetCode Source
解题想法
暴力解,统计所有数字出现的个数,选出现次数最多就是答案。
Python
class Solution: def majorityElement(self, nums: List[int]) -> int: c = Counter(nums) return c.most_common()[0][0]
Python 直接作弊用 Counter,但当然时间花费就高
透过 most_common()
,我们可以得知出现次数最多的数字。
C++
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>
统计数字和它出现的次数
统计完后,再跑一个迴圈找最大值