Skip to content

Commit 31c3c01

Browse files
committed
feat(leetcode): add No.1005
1 parent d303aa9 commit 31c3c01

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
// https://leetcode.com/problems/maximize-sum-of-array-after-k-negations/
2+
//
3+
// algorithms
4+
// Easy (45.09%)
5+
// Total Accepted: 2,968
6+
// Total Submissions: 6,582
7+
// beats 100.0% of golang submissions
8+
9+
package leetcode
10+
11+
import "sort"
12+
13+
func largestSumAfterKNegations(A []int, K int) int {
14+
length := len(A)
15+
16+
sort.Sort(sort.IntSlice(A))
17+
i := 0
18+
19+
for K > 0 && i < length {
20+
if A[i] >= 0 {
21+
break
22+
}
23+
A[i] = -A[i]
24+
i++
25+
K--
26+
}
27+
28+
if K == 0 || i == length || A[i] == 0 {
29+
return sum(A)
30+
}
31+
32+
K %= 2
33+
if K == 1 {
34+
if i > 0 && A[i] > A[i-1] {
35+
A[i-1] = -A[i-1]
36+
} else {
37+
A[i] = -A[i]
38+
}
39+
}
40+
41+
return sum(A)
42+
}
43+
44+
func sum(A []int) int {
45+
res := 0
46+
47+
for _, n := range A {
48+
res += n
49+
}
50+
51+
return res
52+
}

0 commit comments

Comments
 (0)