[LeetCode Problem]169:Majority Element查找多数元素
2018-09-29 23:05
441 查看
Given an array of size n, find the majority element. The majority element is the element that appears more than
⌊ n/2 ⌋times.
You may assume that the array is non-empty and the majority element always exist in the array.
Example 1:
[code]Input: [3,2,3] Output: 3
Example 2:
[code]Input: [2,2,1,1,1,2,2] Output: 2
求一个出现次数超过n/2的数字,那么这种情况下势必只会有一个数字的次数满足这种情况。
思路一:可以利用哈希表直接记录查找,若是次数超过n/2,直接返回数字
[code] class Solution { public: int majorityElement(vector<int>& nums) { int temp=nums.size()/2+1; unordered_map<int,int> m; for(int i=0;i<nums.size();i++){ m[nums[i]]++; if(m[nums[i]]>=temp) return nums[i]; } } };
思路二:可以说是非常机智的一种方法,先对数组进行排序,出现次数超过n/2,那么无论是最小的还是最大的,最中间数字始终是在n/2的范围内
[code]class Solution { public: int majorityElement(vector<int>& nums) { sort(nums.begin(),nums.end()); return nums[nums.size()/2]; } };
阅读更多
相关文章推荐
- LeetCode Problem 169: Majority Element查找多数元素
- LeetCode 题解 169. Majority Element(查找多数元素)
- [LeetCode]169. Majority Element(多数元素)
- LeetCode-169:Majority Element (数组中的多数元素)
- [LeetCode] 169. Majority Element 多数元素
- 169. Majority Element 查找多数元素
- LeetCode 169. Majority Element (数组的主要元素、摩尔投票算法)
- 字符串算法——查找数组多数元素(Majority Element II)
- 【LeetCode】169. Majority Element (多数投票算法 & 算法迁移能力)
- 169. Majority Element (寻找多数元素)
- leetcode 169. Majority Element 多数投票算法(Boyer-Moore Majority Vote algorithm)
- LeetCode Problem No'169 Majority Element
- Leetcode:169. Majority Element(找到数组中出现次数最多的元素)
- LeetCode 169. Majority Element - majority vote algorithm (Java)
- LeetCode 169. Majority Element
- leetcode-169. Majority Element 寻找众数,hash方法
- LeetCode - 169. Majority Element
- [leetcode] 169. Majority Element
- leetcode169. Majority Element
- 2018.03.07 leetcode 打卡 #169. Majority Element