[leetcode]Majority Element

    xiaoxiao2024-12-25  57

    (一)题目描述 

     

    (二)思想方法

    首先使用map,将数组中不重复的数字作为主键,遍历数组,若数组中数字在map中存在,将键为该数字的值加一,不存在则插入map,该数字作为主键,其值为1,直到有数字的值大于N/2;结束。

    (三)代码实现

     

    class Solution { public: int majorityElement(vector<int>& nums) { int major = 0; int max = nums.size() / 2; map<int, int > maps; for (int i = 0; i < nums.size(); i++) { map<int, int>::iterator it; it = maps.find(nums[i]); if (it == maps.end()) { maps.insert(make_pair(nums[i], 1)); if (maps[nums[i]] > max) { major = nums[i]; break; } } else { maps[nums[i]]++; if (maps[nums[i]] > max) { major = nums[i]; break; } } } return major; } };

     

    最新回复(0)