LeetCode - Majority Element
来源:互联网 发布:淘宝注销账户会怎么样 编辑:程序博客网 时间:2024/05/16 08:57
Question
Link : https://leetcode.com/problems/majority-element/
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.
Code
这个是一个还可以的版本吧。即找一个个数超过一半的元素,先把数组排序,然后直接去中间的数即为我们要找的数了。(C++ : 40ms)
class Solution {public: static bool compare(const int &lhs, const int &rhs){ return lhs < rhs; } int majorityElement(vector<int>& nums) { if(nums.size() == 1) return nums[0]; sort(nums.begin(), nums.end(), compare); return nums[nums.size() / 2]; }};
然后又稍微改进了一下,遍历一下数组,用哈希表存储每个值出现的次数。然后遍历哈希表判断那个值出现个数大于数组长度一半则为我们需要找的数。(C++ : 30ms)
class Solution {public: int majorityElement(vector<int>& nums) { int len = nums.size(); map<int, int> counts; map<int, int>::iterator it; for(int i = 0; i < len; i++){ it = counts.find(nums[i]); if(it == counts.end()) counts.insert(pair<int, int>(nums[i], 1)); else it->second += 1; } for(it = counts.begin(); it != counts.end(); it++){ if(it->second > len / 2){ return it->first; } } }};
0 0
- 【leetcode】Majority Element II,Majority element algorithm
- Leetcode: Majority Element &Majority Element II
- Leetcode Majority Element
- leetcode 169-Majority Element
- 【leetcode 哈希表】Majority Element
- LeetCode:Majority Element
- leetcode:Majority Element
- leetcode: Majority Element
- [LeetCode] Majority Element
- leetcode 153: Majority Element
- leetcode Majority Element
- LeetCode:Majority Element
- leetcode:Majority Element
- [LeetCode] Majority Element
- Leetcode-Majority Element
- [leetcode]Majority Element
- [LeetCode]Majority Element
- Leetcode: Majority Element
- test for java first day
- Hibernate学习总结:OneToOne双向主键关联
- UITableView 总结
- 垃圾回收的经典算法
- iOS,Android调用手机QQ与指定用户或公众号聊天界面
- LeetCode - Majority Element
- Facebook: Pop
- 理解汉诺塔
- iOS RunLoop 初识
- iOS开发总结之自定义非等高cell-storyboard
- 制作html源文件查看器
- LeetCode 01 Two Sum
- Python Module_os_操作系统
- Jmeter使用流程及简单分析监控