题目来源:https://leetcode-cn.com/problems/maximum-difference-between-increasing-elements/
大致题意:
给一个数组 nums,求出 nums[j] - nums[i] 的最大差值,其中 i < j,且 nums[i] < nums[j]
思路
- 遍历数组,使用变量存下已经遍历到的元素的最小值和目前的最大差值
- 每遍历到一个元素,若其大于已有的最小值,则尝试更新最大差值
public int maximumDifference(int[] nums) {
int min = nums[0];
int ans = -1;
int n = nums.length;
for (int i = 0; i < n; i++) {
if (nums[i] > min) {
ans = Math.max(ans, nums[i] - min);
}
min = Math.min(min, nums[i]);
}
return ans;
}
本文介绍了解决LeetCode上一个关于数组问题的解法,通过遍历查找nums数组中满足条件(i < j)且nums[i] < nums[j]的元素对,更新最大差值。核心思路是维护当前最小值和最大差值,当遇到较大元素时更新差值。
2万+

被折叠的 条评论
为什么被折叠?



