169. Majority Element
2017-09-03 22:57
141 查看
/* 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. 1.排序 查找 2.hash表计数 遍历 3. 由于一定存在主要的元素且数量大于n/2,所有可以使用计数抵消的方法,选第一个元素为主要元素, 如果下一个元素与之相同则计数加一,否则计数减一;当计数值为0时,在选择下一个元素为主要元素, 重复上述过程,最后主要元素的值即使所求。 */ #include <iostream> #include <vector> using namespace std; class Solution { public: int majorityElement(vector<int>& nums) { int major=nums[0],cnt=1; for(int i=1;i<nums.size();i++) { if(cnt==0) { major=nums[i]; cnt++; } else if(major==nums[i]) cnt++; else cnt--; } return major; } }; int main() { Solution mys; vector<int> nums={6,5,5}; cout<<mys.majorityElement(nums)<<endl; return 0; }
相关文章推荐
- LeetCode--169. Majority Element (Divide-and-Conquer)
- LeetCode169 Majority Element
- 【算法分析与设计】【第五周】169. Majority Element
- LeetCode-169:Majority Element (数组中的多数元素)
- Algorithms—169.Majority Element
- LeetCode 169. Majority Element - majority vote algorithm (Java)
- LeetCode(169)Majority Element
- 169- Majority Element
- leetcode:169 Majority Element-每日编程第十一题
- 169 Majority Element [LeetCode Java实现]
- <LeetCode OJ> 169. Majority Element
- Leetcode:169. Majority Element(JAVA)
- leetcode169 Majority Element
- 169. Majority Element
- leetcode 169. Majority Element
- 169. Majority Element | Java最短代码实现
- 42.leetcode题目:169. Majority Element(还有一种方法待做)
- 169. Majority Element
- Leetcode Everyday: 169. Majority Element
- 2018.03.07 leetcode 打卡 #169. Majority Element