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.最后剩下谁就是谁!