List 从给出最大绝对差的列表中查找一对

List 从给出最大绝对差的列表中查找一对,list,indexing,List,Indexing,它是给定的数字列表。如何构造函数,它将搜索出其中的所有对,它们给出了最大的绝对差。让函数返回确定找到的索引对的索引对列表。不要更改条目列表。案例:对于条目列表[1,4,3,-1,0,3.5,4],函数必须返回[[1,3],[3,6]] 我应该找到第一个最大值还是最小值并进行比较,或者做什么?我认为您应该使用以下方法: findPair = function(inputArray) { var resultArray = [] difference = 0; resultArray.pus

它是给定的数字列表。如何构造函数,它将搜索出其中的所有对,它们给出了最大的绝对差。让函数返回确定找到的索引对的索引对列表。不要更改条目列表。案例:对于条目列表[1,4,3,-1,0,3.5,4],函数必须返回[[1,3],[3,6]]


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

我认为您应该使用以下方法:

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;
}
findPair=函数(输入阵列){
var resultArray=[]
差异=0;
结果推送法([]);

for(var i=0;iYou回答了你最后一句话中的问题[3,6]怎么可能是结果?@7stud我想他想要这些项目的索引。如果这些是索引,你会得到4(两次)和-1。@Renan是的,但是,如果有2、3、4个最大相等的数字……谢谢,但我不明白,这是用python语言写的吗?我想有更简单的方法,请用python写……但我想我明白了……def findPair(inputlist)difference=0 pairs=[];对于inputlist中的i:(我应该把Range(inputlist)或仅仅是inputlist);用于输入列表中的j等