2908. 元素和最小的山形三元组 I

元素和最小的山形三元组 I

解法一: 预处理

go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
func minimumSum(nums []int) int {
n := len(nums)
minArr := make([]int, n)
minArr[0] = nums[0]
for i := 1; i < n; i++ {
minArr[i] = min(minArr[i-1], nums[i-1])
}
pre := nums[n-1]
ans := math.MaxInt
for i := n - 2; i > 0; i-- {
if nums[i] > pre && nums[i] > minArr[i] {
ans = min(ans, pre+nums[i]+minArr[i])
}
pre = min(pre, nums[i])
}
if ans == math.MaxInt {
return -1
}
return ans
}
作者

wuhunyu

发布于

2024-03-29

更新于

2025-01-15

许可协议