找到数组的两个元素,使它们的绝对差不大于给定整数,但与所述整数尽可能接近

时间:2019-07-14 13:18:35

标签: javascript

如果我替换为new_one(var new_one=Math.max(Math.abs(array[i]- array[j]),return new_one)); max_value的结果将为假?

function absolute_difference(array, num) {
  var new_one = -1;
  for (var i = 0; i < array.length; i++) {
    for (var j = i + 1; j < array.length; j++) {
      if ((Math.abs(array[i] - array[j])) <= num) {
        var new_one = Math.max(Math.abs(array[i] - array[j]), new_one);
      }
    }
  }
  return new_one;
}
console.log(absolute_difference([12, 10, 33, 34], 24));

1 个答案:

答案 0 :(得分:3)

您可以获取增量,并对照所需值以及增量是否大于最后一个最大值进行检查。然后存储这些值和本地最大值。

function absolute_difference(array, num) {
    var pair,
        max = -1,
        delta;

    for (var i = 0; i < array.length - 1; i++) {     // adjust length
        for (var j = i + 1; j < array.length; j++) {
            delta = Math.abs(array[i] - array[j]);
            if (delta <= num && delta > max) {
                 pair = [array[i], array[j]];
                 max = delta;
            }
        }
    }
    return pair;
}

console.log(absolute_difference([12, 10, 33, 34], 24));