编写一个静态方法 histogram(),接收一个整形数组a[],和一个整数M为参数,并返回一个大小为M的数组.其中第i个元素的值为整数i在参数数组中出现的次数,如果a[] 中的值均在 0 - M-1之间 ,返回的数组中所有元素之和应该和a.length相等
相关代码如下:有详细注释,应该能看懂 /** * 编写一个静态方法 histogram(),接收一个整形数组a[],和一个整数M为参数,并返回一个大小为M的数组. * 其中第i个元素的值为整数i在参数数组中出现的次数, * 如果a[] 中的值均在 0 - M-1之间 ,返回的数组中所有元素之和应该和a.length相等 */ public static int[] histogram(int[] a,int M) { //返回数组b,大小为M int[] b = new int[M]; //m保存数组b中元素和 int m = 0; //n 表示整数i在参数数组中出现的次数 int n = 0; //外层循环来遍历数组b,并将结果n赋值给b[i],内层循环来遍历数组a,用于比较i在数组a中出现次数并且用n记录 for(int i = 0; i < M; i++) { for(int j = 0; j < a.length; j++) { //判断i出现在数组a[]中的次数,用n记录 if (i == a[j]) { n++; } //计算出i出现次数后放新数组b中并且也是在i位置上 b[i] = n; } } //计算数组b元素和 for(int i = 0; i < M; i++) { m = m + b[i]; } return b; }