package Suanfa;
/**
* @author jixiang
* 在一个数组中找到次数超过一半的数字
*/
public class MoreThanHalfNum {
public static void main(String[] args) {
int[] nums={2,3,1,3,4,1,5,1,1,2,1,1,1};
int Result;
int times=1;
Result=nums[0];
for(int i=1;i<nums.length;i++){
if(times==0){
Result=nums[i];
}
else {
if(Result==nums[i]){
times++;
}
else {
times--;
}
}
}
System.out.println("数组中出现次数超过一半的结果是"+Result);
}
}代码自然先撸为敬!很简单,既然有个数出现的次数大于数组长度一半,则肯定他出现一次,times就加1,下次看到不是在减1.最后剩下谁就是谁!
在一个数组中找出现次数超过一半的数字
原文:http://blog.51cto.com/ji123/2084614