码迷,mamicode.com
首页 > 其他好文 > 详细

“支配着” 是在数组中出现频率超过一半的整数,求一个数组中的支配者

时间:2014-09-29 17:41:01      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:java   支配者   

“支配着” 是在数组中出现频率超过一半的整数,例如{3, 2, 3, 3, 0, 2, 3, 4, 3},其中3出现5次,5除以9大于0.5,所以3是支配者。写一个函数,在给定的整数数组中找出支配者是多少,如果一个数组中没有支配者,则返回1.

package cn.usst.DataTest5;

import java.util.Arrays;

public class DataTest5 {

	/**
	 * “支配着” 是在数组中出现频率超过一半的整数
	 * @param args
	 */
	public static void main(String[] args) {
		int[] ints = {3, 2, 3, 3, 0, 2, 3, 4, 3};
		int j = judge(ints);
		
		if(j == -1){
			System.out.println("No dominator");
		}else{
			System.out.println("The dominator is : " + ints[j]);
		}
	}

	private static int judge(int[] ints) {
		Arrays.sort(ints);
		int counter = 1;
		for(int i=0; i< (ints.length-1); i++){
			if(ints[i] == ints[i+1]){
				counter++;
				if((((double)counter) / ints.length) > 0.5){
					return i ;
				}
			}else{
				counter = 1;
			}
			
		}
		return -1;
	}

}


“支配着” 是在数组中出现频率超过一半的整数,求一个数组中的支配者

标签:java   支配者   

原文地址:http://blog.csdn.net/ankeyuan/article/details/39669957

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!