首页 > 代码库 > “支配着” 是在数组中出现频率超过一半的整数,求一个数组中的支配者
“支配着” 是在数组中出现频率超过一半的整数,求一个数组中的支配者
“支配着” 是在数组中出现频率超过一半的整数,例如{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; } }
“支配着” 是在数组中出现频率超过一半的整数,求一个数组中的支配者
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。