这道题有一点点动态规划的感觉,不同的是后面的数的状态和前面的无关。我们只需要把被减数遍历一遍即可,每个被减数对应一个使其与之相减值最大的数,不断迭代求出最大的那个即可。

class Solution {
public:
   /**
    * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
    *
    * 
    * @param A int整型vector 
    * @param n int整型 
    * @return int整型
    */
   int getDis(vector<int>& A, int n) {
       // write code here
       int min=A[0];//记录最小的减数
       int res;
       //对每一个被减数,找到它前面最小的数
       for(int i=0;i<n;i++){
           if(A[i]<min)
               min=A[i];
           res=max(A[i]-min,res);
       }
       return res;
   }
};