Я хочу перебирать массив и найти все пары, где их разность 2Другой способ получить все комбинации целых чисел массива Javascript
Это то, что я до сих пор:
var numberOfCases = 5;
var diff = 2;
var input = [1,5,3,4,2];
getPossiblepairs(input);
function getPossiblepairs(input){
for(cmp in input){
for(number in input){
if((input[cmp] - input[number]) == diff){
console.log("("+input[cmp]+","+input[number]+")");
}
}
}
}
Этот работает, но я все еще чувствую себя виноватым, используя два для петель, поскольку bigO O (n^2) Это единственный способ сделать это?
Там могут быть алгоритмы вы можете сделайте, чтобы поправиться, если вы действительно знаете распределение чисел (здесь они представляют собой последовательную серию, хотя и не в порядке). Но всего за 5 записей, так что 25 итераций O (5^2), вы действительно хотите сделать его более эффективным? – deitch
Я изменил формулировку, чтобы попросить другие методы, поскольку «лучший способ» будет закрыт, в первую очередь, на основе мнения. – Scimonster
Сортировка списка, где O (N) log n. Тот, который имеет разность двух от текущего, является либо следующим элементом, либо после него. Это проверка O (1). Проверка всех из них - O (N). Таким образом, общий O (N log N) –