每日一题 --- 2016. 增量元素之间的最大差值[力扣][Go]

简介: 每日一题 --- 2016. 增量元素之间的最大差值[力扣][Go]

题目:

给你一个下标从 0 开始的整数数组 nums ,该数组的大小为 n ,请你计算 nums[j] - nums[i] 能求得的 最大差值 ,其中 0 <= i < j < n 且 nums[i] < nums[j] 。

返回 最大差值 。如果不存在满足要求的 i 和 j ,返回 -1 。

解题代码:

func maximumDifference(nums []int) int {
  // 遍历 时间复杂度O(n^2)
  //sum := 0
  //for i := 0; i < len(nums); i++ {
  //  for j := i + 1; j < len(nums); j++ {
  //    if sum <= nums[j] - nums[i] {
  //      sum = nums[j] - nums[i]
  //    }
  //  }
  //}
  //if sum == 0 {
  //  return -1
  //}
  //return sum
  // 记录前缀最小值 时间复杂度O(n)
  ans := -1
  for i,preMin := 1,nums[0]; i < len(nums); i++ {
    if nums[i] > preMin {
      ans = max(ans,nums[i] - preMin)
    } else {
      preMin = nums[i]
    }
  }
  return ans
}
func max(a, b int) int {
  if a > b {
    return a
  } else {
    return b
  }
}


相关文章
|
2月前
|
算法 Java
[Java·算法·简单] LeetCode 27. 移除元素 详细解读
[Java·算法·简单] LeetCode 27. 移除元素 详细解读
25 1
|
2月前
|
算法 C语言
【C语言】Leetcode 27.移除元素
【C语言】Leetcode 27.移除元素
21 0
【C语言】Leetcode 27.移除元素
|
2月前
|
Go C++
【力扣】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
【2月更文挑战第18天】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
34 6
|
2月前
|
C++
两种解法解决 LeetCode 27. 移除元素【C++】
两种解法解决 LeetCode 27. 移除元素【C++】
【移除链表元素】LeetCode第203题讲解
【移除链表元素】LeetCode第203题讲解
|
2月前
|
算法
LeetCode[题解] 1261. 在受污染的二叉树中查找元素
LeetCode[题解] 1261. 在受污染的二叉树中查找元素
16 1
|
4月前
leetcode:203. 移除链表元素(有哨兵位的单链表和无哨兵位的单链表)
leetcode:203. 移除链表元素(有哨兵位的单链表和无哨兵位的单链表)
19 0
|
7天前
[leetcode~dfs]1261. 在受污染的二叉树中查找元素
[leetcode~dfs]1261. 在受污染的二叉树中查找元素
[leetcode~dfs]1261. 在受污染的二叉树中查找元素
|
13天前
|
存储 算法
代码随想录算法训练营第五十九天 | LeetCode 739. 每日温度、496. 下一个更大元素 I
代码随想录算法训练营第五十九天 | LeetCode 739. 每日温度、496. 下一个更大元素 I
21 1
|
13天前
|
算法
代码随想录算法训练营第五十七天 | LeetCode 739. 每日温度、496. 下一个更大元素 I
代码随想录算法训练营第五十七天 | LeetCode 739. 每日温度、496. 下一个更大元素 I
15 3