[LeetCode]Majority Element
来源:互联网 发布:淘宝上hm折扣代购真假 编辑:程序博客网 时间:2024/05/18 20:53
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.
数组求过半数的元素。
做到这道题的时候,心里也是一阵痛,因为上学期算法期末考刚好有这样一道题,而且有空间的限制。
当时想着用map来实现,时间上是快啊。但是不用想,那么大的数据,空间肯定会爆。
LeetCode上的这个解法只用维护两个变量,而且时间也是O(n):
Runtime: O(n) — Moore voting algorithm: We maintain a current candidate and a counter initialized to 0. As we iterate the array, we look at the current element x:
If the counter is 0, we set the current candidate to x and the counter to 1.
If the counter is not 0, we increment or decrement the counter based on whether x is the current candidate.
After one pass, the current candidate is the majority element. Runtime complexity = O(n).
源代码:
int majorityElement(vector<int> &num) {int counter=0, candidate;for (int i = 0; i < num.size(); i++) {if (counter == 0) {candidate = num[i];counter++;}else {if (num[i] == candidate)counter++;elsecounter--;}}return candidate;}
- 【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
- HttpClient下载图片不完整的解决办法
- 如何学好hadoop开发(一)
- 我写马士兵BBS项目时一个哭笑不得的错误
- 题目:实现atof/atoi,考虑正负号
- C语言:内存字节对齐详解
- [LeetCode]Majority Element
- 第七周
- 读书笔记_Effective_C++_条款三十一:将文件间的编译依存关系降至最低
- 2014阿里巴巴校招在线笔试题(数据研发工程师岗位)之二叉树
- HttpClient入门
- 数组中有一个数字出现的次数超过了数组长度的一半,请找出这个数。java实现
- C++中的智能指针问题
- 快速排序算法
- 《初学JAVA》