【发布时间】:2017-06-09 04:55:44
【问题描述】:
我正在开发一个 javascript 函数,该函数接受一个整数数组和一个目标作为参数。任务是在数组中找到第一对整数,其总和等于目标。我已经尝试了几种不同的方法,但是对于较大的输入数组,我不断收到超时错误。有人可以给我一些关于如何更好地优化此代码的指示吗?谢谢!
var sum_pairs = function(ints, s){
var r = [];
var a = true;
var l = ints.length;
for(var j = 0; j < l; j++){
if(a){
for(var i = 0; i < j; i++){
if(ints[j] + ints[i] == s){
r[0] = ints[i];
r[1] = ints[j];
a = false;
break;
}
}
}
else{
console.log('breaking');
break;
}
}
return r[0] == null ? null : r;
}
【问题讨论】:
-
它看起来像是来自 codewars 的对的总和。也许你看看这里:stackoverflow.com/questions/42551366/…
-
Stack Overflow 并不是针对“如何优化代码”这类问题。这些通常更适合Code Review。但是,正如@PriyeshKumar 有帮助地指出的那样,那里似乎已经有人问过了。
-
不,排序是最好的平均情况O(nlogn),那么你需要再次迭代。
标签: javascript performance optimization