在一个数组中找出现次数超过一半的数字

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

点赞