请帮我解决上述问题。提供一个工作示例的算法将不胜感激。如果无法实现上述要求,请处理相关情况。
目前我得到的是:遍历整个数组并获取整个数组的平均值,时间复杂度为O(n)。我们称之为avg。然后从这个平均值中可以得出除了a[0]以外整个数组的平均值(公式为:
虽然有人已经提供了一个“可行”的解决方案,但我正在寻找最有效的实现方式。
目前我得到的是:遍历整个数组并获取整个数组的平均值,时间复杂度为O(n)。我们称之为avg。然后从这个平均值中可以得出除了a[0]以外整个数组的平均值(公式为:
avg(a[1..n-1])=(avg(a[0..n-1])*n-a[0])/(n-1)
)。接下来,你需要拿这个新的平均值和a[0]进行比较。如果它们不相等,你就继续计算先前知道的平均值,并使用上述公式进行计算。虽然有人已经提供了一个“可行”的解决方案,但我正在寻找最有效的实现方式。
O(n)
,我认为它不能比这更有效率,因为您必须查看数组的每个元素一次。 - Björn Pollex