Majority Element
来源:互联网 发布:毕业论文数据造假 编辑:程序博客网 时间:2024/04/29 18:39
Leetcode-Algorithm-Divide and Conquer-169
- 题目:
- 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.
(给定一个大小为n的数组,找到数组元素中的绝对众数,绝对众数也就是出现次数大于等于n/2次的元素。–假定数组非空且绝对众数必定存在。)
题解:
方法1:(运用c++中map容器的特性)
在c++中,map容器能够存储键值对。因此,我们可以把元素看成键(key),把每个元素的数目看成值(value),由于map容器中key不能重复,因此对于重复元素,我们可以用value进行计数。最后看哪个元素的计数大于n/2。
代码:
int majorityElement(vector<int>& nums) { if (nums.size() == 0) return -1; map<int, int> count; for (vector<int>::size_type ix = 0; ix < nums.size(); ++ix) if (++count[nums[ix]] > nums.size()/2) return nums[ix]; return -1;}
方法2:(运用排序以及绝对众数的特征)
由于绝对众数的个数大于数组大小的一半,因此,当数组排序后,位于数组中央的元素必定是绝对众数。
代码:
int majorityElement(vector<int>& nums) { if (nums.size() == 0) return -1; sort(nums.begin(), nums.end()); return nums[nums.size()/2];}
0 0
- majority element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- majority element
- Majority Element
- Majority Element
- C++析构函数后加上virtual的原因
- ios
- java内存泄漏的预防和检测
- el与ognl
- 关于范式,写的真好
- Majority Element
- [面试] MPP数据库
- 不用AIDL,我用Messenger
- 测试大神的养成计划
- spark sql与hive整合
- Wechat--小开发
- Unix网络编程——常见辅助函数总结
- centos7 修改host名
- [LeetCode] 269. Alien Dictionary 解题报告