Majority Element
来源:互联网 发布:藏民对十一世班禅 知乎 编辑:程序博客网 时间:2024/05/01 04:21
好题,利用一个voting algorithm , O(N)时间+O(1)内存就可以做出来了。或者Arrays.sort(num) 然后 num[ num.length / 2 ] 就是那个元素了,因为数量多过n / 2嘛,哈哈,这样时间复杂度是O(NlogN),不需要额外内存空间。
按理来说这道题可以推广到第K多的element,就比较复杂了。。可能需要先排序,再对每一个初次遇到的元素建counter,再找第K大的counter,O(NlogN + N)=O(NlogN)
public int majorityElement(int[] num) { if(num == null) return 0; int res = num[0]; int cnt = 1; int i = 1; while( i < num.length){ if(res != num[i++]) cnt--; else cnt++; if(cnt == 0) { cnt++; res = num[--i]; i++; } } return res; }
0 0
- majority element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- Majority Element
- majority element
- Majority Element
- Majority Element
- Linkedin工程师是如何优化他们的Java代码的
- (转载) IO - 同步,异步,阻塞,非阻塞 (亡羊补牢篇)
- SQL Server评估期已过问题
- ubuntu server telnet 服务(转)
- Python 基于语句检测和语句频谱分析实现文本汇总算法 (document summary algorithm)
- Majority Element
- 【bzoj 3105】: [cqoi2013]新Nim游戏
- javascript读书笔记1
- 心理账户--《别做正常的傻瓜》摘记1
- ListView拖动后,文字、图片布局错乱问题
- 黑马程序员——UIImageView笔记
- Swift基础 - - 高德地图实践(一)
- Codeforces Round #287 (Div. 2) C. (构造)
- maven: repository