leetcode majority element
来源:互联网 发布:淘宝开店拍照总是失败 编辑:程序博客网 时间:2024/06/06 02:17
题目:
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.
找到一个数组中出现次数超过数组元素数量一半的元素的值。很快想到了第一种非常简单的方法,就是把数组排序,然后输出下标是中间的元素:
public int majorityElement(int[] num) {Arrays.sort(num,0,num.length);return num[num.length/2];}只有两行代码,可谓是一个非常漂亮的解。
不过可以看一下java的源码,Arrays的sort方法用的是快排:
public static void sort(int[] a, int fromIndex, int toIndex) { rangeCheck(a.length, fromIndex, toIndex); DualPivotQuicksort.sort(a, fromIndex, toIndex - 1);}所以平均时间复杂度会有n*O(logn),能AC。
但是总觉得有点不够,于是看了一下别人的solution。
方法二:
时间复杂度O(n)
用一个计数器counter记数,用一个变量candidate存储候选值,遍历数组,如果当前值和前一个值相同,counter+1,如果不同,counter-1,如果counter==0了,candidate移动到当前元素。设想极度乱序的情况,那个元素被尽可能多的隔开了,但是至少有一组一定是两个以上连续的那个元素,所以最后的candidate就是我们需要的值。
<span style="white-space:pre"></span>int candidate = 0; int counter = 0; for(int i=0;i<num.length;i++) { if(counter==0) { candidate = num[i]; counter++; } else{ if(num[i]==candidate)counter++; else counter--; } }<span style="white-space:pre"></span>return candidate;
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
- java小技巧
- 01背包 完全背包 多重背包
- Android中获取应用程序(包)的大小-----PackageManager的使用(二)
- 【Jason's_ACM_解题报告】Ugly Numbers
- Android布局
- leetcode majority element
- 原型模式(Prototype)——跟着cc学设计系列
- POJ 1611 Help Jimmy(DP,坑)
- Java参数传递造成参数值改变的情况--值传递和引用传递的初步理解
- 使用git下载linux的kernel源代码
- 曼哈顿距离最小生成树与莫队算法
- CodeForces 128D Numbers 贪心 或 YY
- 初用 intelliJ 的GUI Form
- 垃圾回收机制