给出的数字列表。如何使功能,将搜索其中的所有那些,给出最高的绝对差异。让函数返回一对索引,即确定找到的对。不要更改条目清单。案例:对于条目列表[1,4,3,-1,0,3.5,4],函数必须返回[[1,3],[3,6]]。
我应该找到第一个最大值还是最小值并比较或做什么?
答案 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/