美团2016校招算法题-最大差值

maximum-difference.js
复制

/*
 描述:

 有一个长度为n的A,满足0<=a<=b<=n的A[b] - A[a]的最大值

 给定数组A以及它的大小n,请返回最大差值

 example:

 [10, 5], 2

 返回:0

 要点:
 b>a: 意味着数组必须是后面的元素,减去前面的
 */

let A = [10, 5, 9, 100];

function maxDiff(arr) {
  let diffs = [];
  for (let i = 0; i < arr.length; i++) {
    for (let j = 0; j < arr.length; j++) {
      diffs = diffs.concat([arr[j] - arr[i]]);
    }
  }
  return Math.max.apply(Math, diffs);
}

maxDiff(A);

// a = 1, b = 3 满足a
// A[b] - A[a] = 100 - 5 = 95满足最大差值

大牛们的评论:朕有话说

还没有人评论哦,赶紧抢沙发!