在一個數組中找出現次數超過一半的數字

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.最後剩下誰就是誰!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章