数组中的最大差值

来源:互联网 发布:c语言写三角形 编辑:程序博客网 时间:2024/06/08 15:46
有一个长为n的数组A,求满足0≤a≤b<n的A[b]-A[a]的最大值。给定数组A及它的大小n,请返回最大差值。
解析:贪心思想,时间复杂度为o(n)。设置当前数组中的最小值为min_value。初始化为arr[0],然后依次遍历数组中的每一个元素,当遍历到一个元素时求出当前元素与之前的min_value差值,用该差值和当前最大的差值相比较,如果该差值大于当前最大差值,则更新当前最大差值。然后用该元素和当前最小的元素相比较。如果该元素小于当前最小元素,则更新当前最小元素。
int getDis(vector<int> arr){//当前数组中的最小值int min_value = arr[0];//当前数组中的最大差值int max_dis = 0;for (int i = 1; i < arr.size(); ++i){if (max_dis < arr[i] - min_value){max_dis = arr[i] - min_value;}if (min_value > arr[i]){min_value = arr[i];}}return max_dis;}
0 0
原创粉丝点击