Неэффективный код на циклах. 10000000 петля вызов.
Я не знаю, как сделать мой код более эффективным. Он завершает примеры, но истекает время, когда он обрабатывает большой массив.
Я прошу у вас несколько советов по производительности на циклах, или если вы можете сказать мне, где моя ошибка. Если мой подход полностью неверен, не дайте мне ответ, пожалуйста.
Что мне нужно сделать: учитывая список целых чисел и одно значение суммы, вернуть первые два значения (разбор слева, пожалуйста) в порядке появления, которые складываются, чтобы сформировать сумму.
Примеры:
sum_pairs ([11, 3, 7, 5], 10) => [3, 7]
sum_pairs ([4, 3, 2, 3, 4], 6) => [2, 4], [3, 3], [2, 4]
(Индексы:0,2|1,3|2,4)=>
- вся пара раньше, поэтому правильный ответ === [2, 4]
sum_pairs ([0, 0, -2, 3], 2) нет пар значений, которые можно добавить для получения 2. == Нет /nil/undefined (в зависимости от языка)
sum_pairs ([10, 5, 2, 3, 7, 5], 10) => [5, 5] [3, 7]
-------------------- 1 ------------ 5
-------------------------- 3--4
indicies: (1,5 | 3,4)
- вся пара раньше, и поэтому правильный ответ == [3, 7]
Мое внимание:
var sum_pairs=function(ints, s){
for(t=1; t <=ints.length-1;t++){
for(i=0; i <=ints.length-t-1;i++){
if(ints[i]+ints[i+t]===s){
return [ints[i],ints[i+t]];
}
}
}
}