求差值
一个数组,求任一元素减去该元素右边任一元素的差值的最大值,暴力解法时间复杂度是o(n^2),下面通过动态规划的解法,时间复杂度为o(n)。
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int Maxchazhi(vector<int>a){
int res = 0x80000000;
int cur = 0x80000000;
int len = a.size();
int max = a[0];
for (int i = 1; i < len; i++){
cur = max - a[i];
if (cur > res){
res = cur;
}
if (a[i] > max){
max = a[i];
}
}
return res;
}
int main(){
int n;
vector<int>a{3,2,1,80,6,3,9,1};
cout << Maxchazhi(a) << endl;
return 0;
}