Leetcode NO.169 Majority Element
来源:互联网 发布:网络爬虫程序 编辑:程序博客网 时间:2024/04/29 07:03
题目要求如下:
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.
十几天前做过这道题,是道简单题,当时想当然就用了O(nlogn)的方法,忽略了这道题的最优解,应该是O(N)当时的思路是sort,然后取中间的元素,就是解,相当elegant的解,但是效率不高。
或者用hashmap,虽然时间复杂度也是O(N),但是空间复杂度比较大,所以看了看讨论区,这个应该是最优解,时间复杂度O(n),空间复杂度O(1):
class Solution {public: int majorityElement(vector<int> &num) { int len = num.size(); int count = 0; int cache = 0; for (int i = 0; i < len; ++i) { if (count == 0) { cache = num[i]; ++count; } else { if (cache == num[i]) ++count; else --count; } } return cache; }};基本算法就是:如果遇到两个不同的元素,会成对删除,最后cache里的元素就是答案
比如1,2,3,1,1
最开始1,cache = 1,count = 1
2,cache = 1,count = 0
3, cache = 3, count = 1
1, cache = 3, count = 0
1, cache = 1, count = 1
0 0
- Leetcode NO.169 Majority Element
- LeetCode--NO.169--Majority Element
- 【LeetCode】No.169 Majority Element
- LeetCode Problem No'169 Majority Element
- Majority Element(no 169)
- No.169 Majority Element
- leetcode 169-Majority Element
- [leetcode 169] Majority Element
- leetCode#169 Majority Element
- Leetcode-169Majority Element
- LeetCode 169: Majority Element
- [LeetCode][169][Majority Element]
- LeetCode 169 Majority Element
- Majority Element leetcode[169]
- Leetcode[169]-Majority Element
- leetcode[169]:Majority Element
- leetcode-169-Majority Element
- leetcode 169: Majority Element
- 查询本机IP归属
- xampp/wamp集成环境安装后,如何修改mysql的默认编码格式的方法整理
- OpenGL学习10_绘制行星系统
- 多组数按绝对值由大到小的顺序排列
- 字符设备分配和释放设备编号register_chrdev_region()、alloc_chrdev_region() 和 register_chrdev()
- Leetcode NO.169 Majority Element
- makefile 的写法(转)
- access2007、2010设置密码,提示“使用分组加密进行加密与行级别锁定不兼容。行级别锁定将被忽略。”的解决方法
- EasyUI 之 DataGrid的两种赋值方法
- unity游戏之北美市场调查独立开发者回归发行商模式
- Java Web项目引用外部Java项目
- 正则表达式学习参考
- JAVA实现AES加密
- java中,删除一个List中的后n个元素