Я хочу помочь в оптимизации решения проблемы, я уже разобраться в проблеме, но мой код не достаточно хорош для обработки больших массивов - codeWars : Sum of Pairs - problemОптимизация решение Суммы пара: Codewars
Вот мой код -
var sum_pairs=function(e, sum){
var result=null;
var arrLen=e.length;
for(let i=0;i<arrLen-1;i++){
let nextIndex=e.slice(i+1,arrLen).indexOf(sum-e[i]);
if(nextIndex>=0){
result=[e[i],e[nextIndex+1+i]];
arrLen=nextIndex+1+i;
}
}
return result;
}
Ну, я знаю, что это нехорошее решение. Во всяком случае, это проходит все тестовые примеры, но не удается, когда он сталкивается с большим массивом. Result On codewars
Я хочу знать, как оптимизировать этот код, а также Изучить любую технику написания хорошего кода.
Вот ссылка - https://www.codewars.com/kata/sum-of-pairs/train/javascript –
('Вот link' - заменить ссылку на картинку в вопросе с этим (_train/ _ часть или нет).) Проблема не определена: что такое определение _order внешнего вида_, когда есть пара _earlier_? Если это был первый индекс first_, вам просто нужно знать, существует ли значение в другом индексе, который суммируется с данной суммой. Если это самая низкая сумма индексов, с наименьшим индексом для разрыва связей, вам нужно получить умнее ... (Обратите внимание, что вы можете ответить на свой вопрос.) –
greybeard
'Я хочу знать, как оптимизировать этот код' - не - алгоритм не справляется с обработкой значительных массивов. 'Я хочу [... узнать] любую технику [для написания] хорошего кода. Вы начали с самой простой вещи, которая могла бы работать: хорошо. Вы считаете, что каждый индекс как возможный первый индекс - выглядит неизбежным. В настоящее время игнорируется сложность ECMAScript 'slice': сколько усилий каждый _membership query_ использует' indexOf (sum-e [i]) '? Общее усилие? Каков требуемый результат и что делает ваш 'sum_pairs' после того, как найдена соответствующая пара? (Представьте себе массив из 10 000 000 нулей, сумма 0) – greybeard