美团2016在线编程题 最大差(贪心)
题目描述
有一个长为n的数组A,求满足0≤a≤b<n的A[b]-A[a]的最大值。
给定数组A及它的大小n,请返回最大差值。
测试样例:
[10,5],2
返回:0
思路:最大插差值dis初始化为0,用一个指针从头遍历,找到指针之前及指针指向的元素的最小值为被减数min1,若指针指向的元素A[i] - min1 > dis,则dis更新为 A[i] - min1.
1 class LongestDistance { 2 public: 3 int getDis(vector<int> A, int n) { 4 // write code here 5 int dis = 0;//最大差值初始化为0 6 int min1 = A[0]; 7 for(int i = 1; i < n; i++){ 8 min1 = std::min(min1, A[i]); 9 dis = std::max(dis, A[i] - min1); 10 } 11 return dis; 12 } 13 };
越努力,越幸运