169. Majority Element
2018-02-24 20:55
120 查看
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.
方法一:将数组排序,元素个数多于一半必在数组中间
方法二:利用哈希表统计各元素个数
方法三:(网上摘的)投票算法,每次遇到不同,票数减一,最后剩下的就是候选人
You may assume that the array is non-empty and the majority element always exist in the array.
方法一:将数组排序,元素个数多于一半必在数组中间
class Solution { public: int majorityElement(vector<int>& nums) { if(nums.empty()) return 0; sort(nums.begin(),nums.end()); return nums[nums.size()/2]; } };
方法二:利用哈希表统计各元素个数
class Solution { public: int majorityElement(vector<int>& nums) { unordered_map<int,int> map; for(int i=0;i<nums.size();i++) { map[nums[i]]++; } for(auto j:map) { if(j.second>nums.size()/2) return j.first; } } };
方法三:(网上摘的)投票算法,每次遇到不同,票数减一,最后剩下的就是候选人
class Solution { public: int majorityElement(vector<int>& nums) { int count=0; int res=0; for(int i=0;i<nums.size();i++) { if(count==0) { res=nums[i]; count=1; } else { if(res==nums[i]) count++; else count--; } } return res; } };
class Solution { public: int majorityElement(vector<int>& nums) { int cnt = 1; int num = nums[0]; for (int i = 1; i < nums.size(); i++){ if (nums[i] == num) cnt++; else{ cnt--; if (cnt == 0){ num = nums[i]; cnt = 1; } } } return num; } };
相关文章推荐
- LeetCode Problem No'169 Majority Element
- leetcode:169. Majority Element
- [LeetCode]169. Majority Element(多数元素)
- 【LeetCode】169. Majority Element(Easy)解题报告
- LeetCode之路:169. Majority Element
- LeetCode Problem 169: Majority Element查找多数元素
- 169. Majority Element
- LeetCode 169. Majority Element
- LeetCode 169. Majority Element (众数)
- 2017-09-12 LeetCode_169 Majority Element
- 169. Majority Element
- 169. Majority Element
- leecode 169. Majority Element(C语言,快速排序,堆排序,各类排序算法复杂度比较)22
- leetcode-169. Majority Element
- 169.Majority Element && 229. Majority Element II
- [leetcode] 169. Majority Element
- leetcode No169. Majority Element
- 【一天一道LeetCode】#169. Majority Element
- LeetCode 229. Majority Element II ,169. Majority Element
- [LeetCode]--169. Majority Element