zoukankan      html  css  js  c++  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;
    	}
    
    }
    


  • 相关阅读:
    Swift
    Swift
    Swift
    Swift
    Swift
    Swift
    Swift
    Swift
    Swift
    算法の序列
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/6722363.html
Copyright © 2011-2022 走看看