0

指定された数値のリスト。どのように関数を作成するか、それは最高の絶対差を与えるすべてのペアを検索します。関数は、見つかったペアを決定するインデックスのペアのリストを返します。エントリーリストを変更しないようにしましょう。ケース: エントリ リスト [1, 4, 3, -1, 0, 3.5, 4] の場合、関数は [[1, 3], [3, 6]] を返す必要があります。

最初の最大値または最小値を見つけて比較する必要がありますか、それともどうすればよいですか?

4

1 に答える 1

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;
}

最初のループで、最大の差があるペアを見つけ、次に 2 番目のループでこれの繰り返しを見つけます。これは jsfiddle リンクです: http://jsfiddle.net/4CbsT/

于 2013-06-13T14:53:57.567 に答える