【发布时间】:2018-09-28 06:28:52
【问题描述】:
我已经使用两个循环在 javascript 中实现了解决方案,下面是代码
function getNums(arr){
var res = [];
var found = {};
var i, j;
var arrLen = arr.length;
for(i=0; i<arrLen; i++){
if(!found.hasOwnProperty(arr[i])){
for(j=0; j<arrLen; j++){
if(arr[i]+arr[j] === 0){
var num = arr[i];
if(num > 0){
res.push(num);
found[num] = 1;
}
}
}
}
}
return res;
}
console.log(getNums[-1, -2, 0, -4, 1, 4, 6]); // Output: [1, 4]
其时间复杂度为 O(n2)。有人可以建议更好的解决方案/在上面进行改进以降低复杂性吗?
【问题讨论】:
-
请添加数据
arr和想要的结果res。 -
代码的用途是什么?看起来您正在尝试查找总和为 0 的所有数字对,但您仍然需要提及它。你不能指望人们阅读你的代码并猜出你的座右铭。
标签: javascript arrays algorithm