编写一个静态方法 histogram(),接受一个整型数组 a[] 和一个整数 M 为参数并发挥一个大小为 M 的数组,其中第 i 个元素的值为整数 i 在参数数组中出现的次数. 如果 a[] 中的值均在 0 到 M-1 之间,返回数组中所有元素之和应该和 a.length 相等.
package main
import "fmt"
func main() {
a := []int{1, 1, 2, 2, 3, 4, 5, 6, 7, 7}
arr := histogram(a, len(a))
fmt.Println(arr)
}
func histogram(a []int, M int) []int {
arr := make([]int, M)
for _,v := range a {
if v >= 0 && v < M {
arr[v] ++
}
}
return arr
}
def histogram(a: list, M: int) -> list:
l = [0 for i in range(M)]
for v in a:
if v >=0 and v < M:
l[v] += 1
return l
if __name__ == '__main__':
a = [1, 2, 3, 3, 3, 4, 5, 6]
l = histogram(a, len(a))
for i,v in enumerate(l):
print(i,v)
package com.test;
public class Test {
public static void main(String[] args) {
int[] a = {1,3,3,1,1,2,1,1,1,1};
int[] arr = histogram(a,a.length);
for (int n : arr) {
System.out.println(n);
}
}
private static int[] histogram(int[] a, int M) {
int[] arr = new int[M];
for (int i = 0; i < a.length; i++) {
if (a[i] >= 0 && a[i] < M) {
arr[a[i]]++;
}
}
return arr;
}
}