有一个长为n的数组A,求满足0≤a≤b<n的A[b]-A[a]的最大值。
给定数组A及它的大小n,请返回最大差值。
测试样例:
[10,5],2
返回:0
1 int getDis(vector<int> A, int n) { 2 3 int max = 0; 4 int min = A[0]; 5 for (vector<int>::iterator it = A.begin(); it != A.end(); it++) 6 { 7 if (*it<min) 8 { 9 min = *it; 10 } 11 if ((*it-min) > max) 12 { 13 max = *it-min; 14 } 15 } 16 return max; 17 18 }//时间复杂度为O(n)
常规的朴素穷举法,时间复杂度为O(n2).