lc-go/solutions/35/q3507/solution.go
2026-01-25 11:56:12 +09:00

36 lines
556 B
Go

package q3507
import "math"
func minimumPairRemoval(nums []int) int {
var nOp int
var op = func() bool {
minP, minSum := 0, math.MaxInt
sorted := true
for i := range len(nums) - 1 {
sum := nums[i] + nums[i+1]
if sum < minSum {
minSum = sum
minP = i
}
if sorted && nums[i+1] < nums[i] {
sorted = false
}
}
if sorted {
return false
}
nums[minP] += nums[minP+1]
copy(nums[minP+1:], nums[minP+2:])
nums = nums[:len(nums)-1]
return true
}
for op() {
nOp++
}
return nOp
}
var _ = minimumPairRemoval