【发布时间】:2020-10-10 20:28:46
【问题描述】:
例如给定一个数组arr(0, 0, 1, 1, 1),如果值为1,我需要找到所有其他索引到当前索引的距离之和。例如,我在O(n^2)中有以下代码表示法,但我知道我可能可以在 O(n) 中完成。
arr = [0, 1, 1, 1, 1]
for(i = 0; i < arr.length; i++) {
sum = 0;
for(j = 0; j < arr.length; j++) {
if(arr[j] == 1 && j != i) {
sum += Math.abs(j - i);
}
}
return_arr[i] = sum;
}
(没有任何特定语言)
距离用j-i的绝对值表示。
【问题讨论】:
-
所以你想要一个 O(n) 的方法?
-
@nice_dev 如果可能的话,我认为是的,我希望能得到一些见解。
-
你为什么要这个?为什么不使用标准差或方差?
标签: algorithm array-algorithms