概述
给出一个数组。目标是找到两个索引i和j的值之间的最大差异。
- j > i
- arr[j] > arr[i] 。
如果没有这样的索引存在,则返回-1
例子1
Input: intervals = [8, 2, 6, 5]
Output: 4
Explanation: 6-2 = 4
例2
Input: intervals = [8, 3, 2, 1]
Output: -1
Explanation: Condition is not satified
程序
下面是同样的程序。
package main
import "fmt"
func maximumDifference(nums []int) int {
lenNums := len(nums)
if lenNums == 0 || lenNums == 1 {
return -1
}
minElement := nums[0]
maxDifference := -1
for i := 1; i < lenNums; i++ {
diff := nums[i] - minElement
if diff > maxDifference && diff != 0 {
maxDifference = diff
}
if nums[i] < minElement {
minElement = nums[i]
}
}
return maxDifference
}
func main() {
output := maximumDifference([]int{8, 2, 6, 5})
fmt.Println(output)
output = maximumDifference([]int{8, 3, 2, 1})
fmt.Println(output)
}
输出
4
-1