我正在尝试使用Javascript解决一个程序,以查找数组中任意一对元素之间的最小绝对差。输入将作为数组元素参数传递。输出返回数组中任意两个元素之间的最小绝对差。
例如,输入为[1,2,4],输出为1。
问题的详细描述在this链接中给出。
在我的代码中,当输入包含1000个元素的数组时,它会编译并显示超时终止,但对于较小的输入数组有效。
我认为错误来自于性能和复杂性问题。我研究了这个问题,但我卡在如何进一步进行的步骤上。
我的代码:
例如,输入为[1,2,4],输出为1。
问题的详细描述在this链接中给出。
在我的代码中,当输入包含1000个元素的数组时,它会编译并显示超时终止,但对于较小的输入数组有效。
我认为错误来自于性能和复杂性问题。我研究了这个问题,但我卡在如何进一步进行的步骤上。
我的代码:
var arr = [..] //array containing 1000 elements
var count = minimumAbsoluteDifference(arr);
console.log(count);
function minimumAbsoluteDifference(arr) {
var diff = []; var index = 0;
arr.sort((a, b) => { return (a - b); });
for (var i = 0; i < arr.length-1; i++){
for (var j = i+1; j < arr.length; j++){
if (i != j) {
diff[index] = Math.abs(arr[i] - arr[j]);
console.log("index", i, j);
index++;
}
}
}
var minAbsoluteDifference = Math.min(...diff);
return minAbsoluteDifference;
}
diff[index] = Math.abs(arr[i] - arr[i+1]);
- gp.