46. 主元素

Posted 做个快乐的自己

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了46. 主元素相关的知识,希望对你有一定的参考价值。

题目:给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的二分之一。

思路:题目中又说要严格大于数组个数的二分之一,所以先给数组先排序。如果存在的话那数组中间的那个数一定是主元素。所以只需要计算和中间元素相同的个数,然后判断是否大于二分之一就可以了。

 

public class Solution {
/*
* @param nums: a list of integers
* @return: find a majority number
*/
public int majorityNumber(List<Integer> nums) {
// write your code here
int max=0;
int len = nums.size();
Collections.sort(nums);
int temp = nums.get(len/2);
for(int i = 0;i<len;i++){
if(temp == nums.get(i)){
max++;
}
}

if(max>len/2){
return temp;
}else{
return 0;
}
}
}

以上是关于46. 主元素的主要内容,如果未能解决你的问题,请参考以下文章

lintcode.46 主元素

生成和拖动 SVG 元素 - 方法

更新组件外的元素

求数组主元素的递归算法

主元素问题 减治法

算法习题---线性表之数组主元素查找