LeetCode - Majority Element

来源:互联网 发布:ae电子相册制作软件 编辑:程序博客网 时间:2024/06/18 01:55

我知道可以用divide and conquer算法...但是我不会实现= =

就直接排序然后数个数了 

其实排序之后第n/2个元素就是了不用数来着。。。

public int majorityElement(int[] num) {       Arrays.sort(num);              int count = 1;       int majority = num.length / 2;       int element = -1;       for (int i = 0; i < num.length; i ++) {       element = num[i];       while (i + 1 < num.length && num[i] == num[i+1]) {       System.out.println(i + ":" + num[i]);       count ++;       i ++;       }       if (count > majority) {       break;       }       else {       count = 1;       }       }              return element;    }

原来解题方法有很多种。。

比如

Hashtable:我还不会用hashtable= =

Random:随机一个数,得到众数的概率大于1/2

Moore Voting algorithm:maintain 一个candidate和count,最后的candidate是众数

0 0