【校招真题】2016 美团 最大差值
题目
题目描述:
有一个长为n的数组A,求满足0≤a≤b<n的的A[b]-A[a]的最大值。
给定数组A及它的大小n,请返回最大差值。测试样例:
[10,5],2
返回:0
考查点
贪心
思路
计算 A[i] 与前 i 项中最小值的差,
也即是当前元素跟它之前元素中的最小值之差可能是结果,
扫描数组中的每一个元素,即可以计算出最终的结果。
程序
import java.util.*;
public class LongestDistance {
public int getDis(int[] A, int n) {
// write code here
int dis = 0; // 最大差值大于等于0
int min = A[0]; // 前 a 的最小值
// 计算 A[i] 与前 i 项中最小值的差
for (int i = 1; i < n; i ++){
if (A[i] - min > dis) dis = A[i] - min;
if (min > A[i]) min = A[i];
}
return dis;
}
}