增量元素之间的最大差值
难度:简单
这道题太熟悉了,但想了好久才想起来,这不就是 买卖股票最佳时机 嘛
通过双层for循环暴力破解即可,但是为了优雅和性能,我们可以通过记录到当前位置的最小值(因为最大差值的被减数一定是最小值),单层for循环便可得到答案。
代码如下:
public int maximumDifference(int[] nums) {
int min = nums[0];
int res = -1;
for (int i = 0; i < nums.length; i++) {
res = Math.max(res,nums[i]-min);
min = Math.min(nums[i],min);
}
return res>0?res:-1;
}
执行结果:成功