您的位置:首页 > 其它

给你一组字符如{1,3,4,7,2,1,1,5,2},让你输出里面出现次数最多且数值最大的一个,出现几次

2014-08-20 21:41 239 查看
二种实现方法;

一:

int[] a = { 5,5,8,5,3,5,3,3,3,5,1,5 };

Arrays.sort(a); //把数组变成集合

for (int i = 0; i < a.length; i++) {

System.out.println("i="+a[i] );

}

int maxNumber = a[0], maxCount = 1;

int curNumber = a[0], curCount = 1;

System.out.println("数组角标="+(a.length - 1));

for (int i = a.length - 1; i > 0; i--)

{

curNumber = a[i];

if (a[i] == a[i - 1])

{

curCount++;

}

else {

if (curCount > maxCount)

{

maxCount = curCount; maxNumber = curNumber;

}

curCount = 1;

}

}

System.out.println("\nmaxCount:"+maxCount+",maxNumber:"+maxNumber);

二:

int[] num = {5,5,8,5,3,5,3,3,3,5,1,5};

Map<Integer, Integer> map = new HashMap<Integer, Integer>();

for( int i =0 ; i<num.length ;i++){

if(map.containsKey(num[i])){

map.put(num[i], (Integer)map.get(num[i])+1);//如果已经有key--num[1],那么这个put,就会把value值+1覆盖原来的value值

}else{

map.put(num[i], 1);

}

}

Integer max= Integer.MIN_VALUE;

Integer max2 = Integer.MIN_VALUE;

for( Entry<Integer, Integer> entry : map.entrySet() ) {

Integer key = entry.getKey();

Integer value = entry.getValue();

if(value>=max){

max=value;

if(key>=max2){

max2=key;

}

}

}

for( Entry<Integer, Integer> entry : map.entrySet() ) {

Integer key = entry.getKey();

Integer value = entry.getValue();

if(key==max2){

System.out.println("频率最大数"+key+" 频率:"+max);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐