获得数组Javascript的所有整数组合的另一种方法

ipa*_*yte 5 javascript arrays performance time-complexity

我想迭代一个数组并找到它们的差值为2的所有对

这是我到目前为止:

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]+")");
            }
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

这有效,但我仍然感到内疚使用两个for循环,因为bigO是O(n ^ 2)这是唯一的方法吗?

All*_*uce 6

您可以在O(n log n)中执行此操作.对数组进行排序,然后一次性完成.找出当前元素与下两个元素之间的差异,如果一个元素相差2,则打印出该元素.