给定一个整数数组,a[1],a[2],...,a[n],每一个元素a[i]可以和它右边的(a[i+1],a[i+2],...,a[n])元素做差,求这个数组中最大的差值,例如a={0,3,9,1,3,5}这个数组最大的差值就是9-1=8;
class Solution { public: int maxDiff(vector<int>& v){ int n = v.size(); if(n < 2) return 0; int* dp = new int[n]; dp[n-1] = 0; int res = INT_MIN; for(int i=n-2;i>=0;i--){ dp[i] = dp[i+1] < 0? v[i]-v[i+1]:v[i]-v[i+1]+dp[i+1]; if(dp[i] > res){ res = dp[i]; } } return res; } };