[leetcode]13 Majority Element
来源:互联网 发布:数学必修三算法初步 编辑:程序博客网 时间:2024/06/06 04:53
题目链接:https://oj.leetcode.com/problems/majority-element/
Runtimes:48ms
1、问题
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.
2、分析
思路:先对数组进行排序,然后对相同的元素进行计数,数量超过一半的即可返回该元素。
3、小结
这里需要注意两点,其一是algorithm库函数sort()的使用,有空总结一下了解其中的原理;其二是对于执行到最后也没进行返回的时候,需要返回一个值,这个值就是num[s],原因是num[s]是当前检验元素,如果循环因为i < num.size()退出了,那么就不可能进行if(num[s] != num[i])判断,从而没可能返回num[s]。
4、实现
class Solution {public: int majorityElement(vector<int> &num) { sort(num.begin(), num.end()); int s = 0; for(int i = 1; i < num.size(); i++) { if(num[s] != num[i]) { if(i - s - 1 >= num.size() / 2) { return num[s]; }else{ s = i; } } } return num[s]; }};
5、反思
假如元素不是int类型,而是其他类型比如字符之类的,也可以利用相同的思路解决。先排序,后计数。下面的文章介绍了其他的一些方法,其中hash table方法应该了解一下。
推荐文章:http://www.cnblogs.com/EdwardLiu/p/4179345.html
0 0
- [leetcode]13 Majority Element
- 【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
- kaptcha 简单方便的验证码生成工具
- 使用从右到左的布局文件 的设置
- jQuery Ajax 实例 全解析
- 互联网在中国为什么火
- 关于WPF和Windows Form的区别理解(一)
- [leetcode]13 Majority Element
- UISearchBar的使用
- 牛腩新闻发布系统总结
- C# IndexOf()
- 多次点击事件监听
- ios 点击界面空白处隐藏键盘
- 跟我一步一步学爬虫---传参篇(二)
- 使用API获取(默认付款条件和到期日)
- NodeJs:用 nodejs + edge + ejs + c#,打造属于自己的代码生成器