整型数组里求元素出现的次数

这个算法说难不算难,说不难又要花点时间,对于我这种小菜鸟来说花了不少时间才做出来。。

我用得是递归方法,main函数里调用    getInfo(arr,0); 这个方法实现递归,arr是数组名,0是从第一个下标开始

public static void getInfo(int[] arr,int len){

for (int i = len; i < arr.length-1; i++) {
int count = 1;
for (int j = i+1; j < arr.length; j++) {
          /** 如果当前元素不等于下一个元素的值,就输出当前元素,
            并且把数组和下一个元素的下标再调用方法 */

if (arr[i] != arr[j]){
System.out.println(arr[i]+" "+count+"次");
if (j==arr.length-1){
System.out.println(arr[j]+" "+"1次");
break;
}    //这个判断为输出数组的最后一个元素,最后一个元素不能再递归
getInfo(arr,j);
break;
}else {
            /** 相反,如果当前元素和下一个元素相等时,计数器+1,继续循环 */

count++;
if (j==arr.length-1){
System.out.println(arr[i]+" "+count+"次");
break;
}
} //如果最后的元素和前面的元素相等时就要在这里输出了,
                 最后的元素不能继续循环

}
break;
}
}

猜你喜欢

转载自www.cnblogs.com/Lii-midshei/p/10638638.html