iT邦幫忙

0

[LeetCode] 169. Majority Element

  • 分享至 

  • xImage
  •  

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> 統計數字和它出現的次數
統計完後,再跑一個迴圈找最大值

這系列文被記錄在 Top Interview 150 Series


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言