题目地址
解题思路
我们可以对数组进行遍历,但是遍历是从数组第二个元素(下标为1)开始,初始化res为INT_MIN,初始化前者pre为nums[0];然后对于每一个nums[j],我们判断此时nums[j]是否大于pre;
- 如果nums[j]>pre: 我们计算nums[j]-pre,并取其值与res的较大值,将其赋值给res;
- 如果nums[j]<pre: 我们重置pre为当前的nums[j];
 最后return res==INT_MIN ? -1 : res;
代码实现(C++)
class Solution {
public:
    int maximumDifference(vector<int>& nums) 
    {
        int pre=nums[0];
        int res=INT_MIN;
        for(int i=1;i!=nums.size();i++)
        {
            if(nums[i]>pre)
            {
                res=max(res,nums[i]-pre);
            }
            if(nums[i]<pre)
            {
                pre=nums[i];
            }
        }    
        return res==INT_MIN ? -1 : res;
    }
};










