楼主:
JIWP (JIWP)
2025-04-03 12:50:202874. Maximum Value of an Ordered Triplet II
写每日比扫墓快乐
思路:
昨天那题的加强版
找出最大的nums[i] * diff
iMax为nums[i]之前最大的数
diff为到nums[i]时最大的差值(iMax-nums[i])
就这样维护这两个数就可以得到答案了
golang code :
func maximumTripletValue(nums []int) int64 {
iMax, diff, ans, n := max(nums[0], nums[1]), nums[0]-nums[1], 0, len(nums)
for i := 2; i < n; i++ {
ans = max(ans, diff*nums[i])
diff = max(diff, iMax-nums[i])
iMax = max(iMax, nums[i])
}
return int64(ans)
}