我创建了一种方法(基于我在网上找到的伪代码)来计算数组的前缀平均值,但我不确定我是否满足要求。
要求是:
给定一个包含 n 个数字的数组 a[1…n],计算另一个长度也为 n 的数组 b[1…n],使得 b[i] 是 a[0]…a[i] 的平均值,对于 0 <=我 <= n。
我环顾四周,发现了前缀平均方法的线性和二次版本的伪代码,并创建了我自己的每个实现。
这是线性版本:
public static double[] prefixAverages1 (double[] n) {
double b[] = new double[n.length];
double s = 0;
for (int i = 0; i < n.length; i++) {
s += n[i];
b[i] = s/(i+1);
}
return b;
}
这是二次版本:
public static double[] prefixAverages2 (double[] n) {
double b[] = new double[n.length];
for (int i = 0; i < n.length; i++) {
double t = 0;
for (int j = 0; j <= i; j++) {
t += n[j];
}
b[i] = t/(i+1);
}
return b;
}
我的问题:
这两个功能是否都满足要求,如果满足,哪个更好?