LeetCode Majority Element
来源:互联网 发布:ct young无网络连接 编辑:程序博客网 时间:2024/06/06 23:51
思路:
分享DISCUSS里的非常trick的一种解法,非常nice:
从头开始遍历,如果遇到两个不同的元素,则去掉这两个元素,最后剩下的一定是majority element。题目给的数据保证了一定存在majority element。
时间复杂度O(N),空间复杂度O(1)。
class Solution {public: int majorityElement(vector<int>& nums) { int count = 0; int candidate = 0; for(int i = 0; i < nums.size(); ++i) { if(count == 0) { candidate = nums[i]; count++; }else { if(nums[i] == candidate) { count++; }else { count--; } } } return candidate; }};
注:
该解法可扩展到⌊ n/k ⌋的情况,即每k个不同的element进行成对删除。
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
- 内存数据库
- uva 11983(扫描线)
- 在java中变量一定要初始化吗?
- memcpy函数实现及其优化
- 查看设备序列号和设备标识的方式(有三种方法)
- LeetCode Majority Element
- TCP 和 HTTP
- 【数据结构与算法】哈夫曼树
- LoadRunner11:Vuser failed to initialize extension LrXml.dll
- 图的存储结构
- QT 学习资源汇总
- TCP之RST发送场景
- 综合测试
- Smarty截取字符串(中文和英文均支持)