169. Majority Element Easy
来源:互联网 发布:java 内存泄露常见场景 编辑:程序博客网 时间:2024/05/16 23:38
这题虽然只是个简单题,但是我觉得还是很值得推敲,主要是考虑怎样写更简短。
一开始我觉得先排序,然后返回第n/2个数就可以了。代码如下:
class Solution {
public:
int majorityElement(vector<int>& nums) {
sort(nums.begin(), nums.end());
return nums[nums.size() / 2];
}
};
实际上也AC了,但是题目中说的出现次数有向下取整,也就是说,当size为奇数时,有可能majority的出现次数不到一半,这样就行不通了。比如 2 2 2 3 4 5 6,总共七个数,用上面的解法,返回的答案是错误的。不知道为什么这样也能AC,可能是取整的方法有误差?
看讨论有人总结了6种方法,除了上面的那种,其它的都很短,还发现了几个有意思的函数,我自己又写了一个稳妥一点的。代码如下:
class Solution {
public:
int majorityElement(vector<int>& nums) {
set<int> s;
for (int i = 0; i < nums.size(); ++i)
if(s.find(nums[i]) == s.end()){
if(count(nums.begin(), nums.begin() + nums.size(), nums[i]) > nums.size() / 2) return nums[i];
s.insert(nums[i]);
}
}
};
- 169. Majority Element (Easy)
- 169. Majority Element Easy
- 169. Majority Element [easy] (Python)
- 【LeetCode】169.Majority Element (Easy)
- Leetcode 169. Majority Element[easy]
- LeetCode 169. Majority Element (Easy)
- LeetCode 169. Majority Element (Easy)
- Easy-题目11:169. Majority Element
- Leetcode 169. Majority Element (Easy) (cpp)
- 169. Majority Element 难度:Easy 类别:分治
- LeetCode解题报告 169. Majority Element [easy]
- [leetcode 169. Majority Element]easy |week4
- Majority Element (easy)
- [Leetcode 169, Easy] Majority Element
- <LeetCode><Easy> 169 Majority Element
- Easy 169题 Majority Element
- 【Leetcode-Easy-169】 Majority Element
- Leet Code OJ 169. Majority Element [Difficulty: Easy]
- Problem--158B--Codeforces--Taxi
- 自用MFC知识点记录
- Nginx负载均衡
- 心情很不好啊
- CentOS中修改默认runlevel
- 169. Majority Element Easy
- 原码、反码与补码
- 买糖果
- threejs对象拾取
- 设计模式(工厂方法)
- 关于为啥要开博客
- PHP及其微信公众号开发(学习之路三)
- 【Nginx 配置】 SSI
- 【蓝桥杯】算法提高 夺宝奇兵