题目地址
解题思路
我们可以对数组进行遍历,但是遍历是从数组第二个元素(下标为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;
}
};










