从列表中找到具有最高绝对差异的对

时间:2013-06-13 14:25:03

标签: list indexing

给出的数字列表。如何使功能,将搜索其中的所有那些,给出最高的绝对差异。让函数返回一对索引,即确定找到的对。不要更改条目清单。案例:对于条目列表[1,4,3,-1,0,3.5,4],函数必须返回[[1,3],[3,6]]。

我应该找到第一个最大值还是最小值并比较或做什么?

1 个答案:

答案 0 :(得分:0)

我认为你应该使用它:

findPair = function(inputArray) {
var resultArray = []
    difference = 0;
resultArray.push([]);
for (var i=0; i<inputArray.length;i++) {
    for (var j=0; j<inputArray.length;j++) {
        if (Math.abs(inputArray[i] - inputArray[j]) > difference) {
            difference = Math.abs(inputArray[i] - inputArray[j]);
            resultArray[0][0] = i;
            resultArray[0][1] = j;
        }
    }
}
for (var i=0; i<inputArray.length;i++) {
    for (var j=0; j<inputArray.length;j++) {
        if ((Math.abs(inputArray[i] - inputArray[j]) === difference) && !((resultArray[0][0] === i) && (resultArray[0][1] === j)) && !((resultArray[0][0] === j) || (resultArray[0][1] === i))) {
            resultArray.push([i,j]);
        }
    }
}
return resultArray;
}

在第一个循环中,我们找到具有最大差异的对,然后在第二个循环中找到重复的这个。 这是jsfiddle链接:http://jsfiddle.net/4CbsT/