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

 

posted @ 2016-07-22 22:30  琴影  阅读(719)  评论(0编辑  收藏  举报