先循环k次,每次把最小值前加负号,然后遍历求和
func largestSumAfterKNegations(A []int, K int) int {
sum := 0
for K > 0 {
small := 0
for i := 0; i < len(A); i++ {
if A[i] < A[small] {
small = i
}
}
A[small] = A[small] * -1
K--
}
for _, v := range A {
sum += v
}
return sum
}
更多内容请移步我的repo:https://github.com/anakin/golang-leetcode