This repository was archived by the owner on Sep 20, 2023. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 164
/
Copy pathmaximize-sum-of-array-after-k-negations_test.go
executable file
·57 lines (46 loc) · 4.99 KB
/
maximize-sum-of-array-after-k-negations_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package problem1005
import (
"testing"
"github.com/stretchr/testify/assert"
)
// tcs is testcase slice
var tcs = []struct {
A []int
K int
ans int
}{
{
[]int{-75, 44, -14, -80, 11, 81, 67, 73, 75, -77, -35, -77, 9, 22, 11, 93, -34, 5, 78, 80, 1, 0, 94, 56, 21, -79, 13, -54, 82, 19, -99, -19, 6, -18, 39, -19, 83, 96, -66, -75, -3, 54, 97, -4, 77, -66, 69, 14, 17, -59, 13, -32, -6, -52, 74, 73, 61, -26, -62, 89, 71, 22, -35, -61, -75, -10, 17, -54, -49, -78, 79, -79, 63, 27, 85, -66, -24, 2, -15, -42, -58, 60, -8, 6, 43, -33, -11, -52, -62, -79, 93, -78, -36, -80, -23, -72, 43, -96, -25, 60, 49, -48, 44, 54, 11, 13, 82, 73, 17, -22, -9, -16, -83, 23, 6, 83, 37, -93, -43, 5, 9, -25, -87, -69, -51, -10, 36, 77, 62, -92, 100, 13, 64, 84, 100, 30, 88, 50, -56, -55, 50, 57, 77, -40, 15, -25, 8, -87, 50, 13, 45, -49, -66, -65, -6, -90, -82, 68, -86, -25, 2, 72, 87, 69, 57, -43, -32, 54, -69, -42, 21, 0, -4, 82, 44, 84, -34, -44, 88, 92, 30, 66, 80, -68, 10, -15, -8, -87, -37, -49, 52, -59, 53, 21, -76, 32, -74, 87, 89, 58, 50, -47, 14, 64, 36, -84, 57, 58, -49, -15, -96, -64, 33, -100, -89, 76, -20, -79, -35, 6, 37, -90, 28, -14, 32, 16, -88, -32, -59, 40, -7, -51, 99, -31, -99, -100, -5, -19, 59, 83, -72, 59, -59, 50, 67, 56, 76, 67, -47, -16, -99, -87, -27, 80, -9, 45, 41, -42, 64, -28, 65, 56, 65, 27, -22, 37, -70, -35, -74, -69, 12, -37, 3, -76, 70, -100, 19, -3, -69, -15, -29, 98, -16, 19, -59, 38, -3, -39, -61, -26, -6, -73, -80, 41, -79, 42, 34, 98, -68, 97, 10, -16, 92, -21, 100, -75, 1, -74, 61, 41, 58, -96, -4, -93, -34, -32, 94, 60, 57, -56, -17, 5, 83, 22, -40, 51, 0, -61, 62, 25, -32, -56, -98, -55, -96, -92, 100, -50, 66, 7, 46, 23, -53, -41, -85, -71, 58, -47, -20, 9, -24, 36, 19, 22, -78, 56, -38, 53, -10, -72, 11, -92, 90, -45, -80, 100, -98, -85, 45, -18, -37, -15, -56, 28, -2, -11, 55, 18, 65, 18, -19, -43, 39, 31, -76, 89, -1, -97, 25, -96, -26, 34, 70, -80, -9, -97, -41, 43, 96, 82, 95, -67, -22, 60, 95, -41, -90, -34, 25, -35, 76, -26, -46, -20, 63, -41, -46, -6, -91, 8, -43, 93, -54, 80, -93, 41, -19, 63, 66, 47, 50, -3, -16, 46, -28, -100, -27, -76, -93, 19, 56, 64, 36, 53, -99, -5, -75, -91, -37, 78, -49, -92, -43, 8, -22, -90, -65, -55, 21, -13, 98, 38, 93, 65, -54, -77, -29, -50, 15, -4, 22, 17, -65, 17, 55, 74, 45, 78, -12, 20, -81, -72, 3, 19, -13, -93, 50, 21, -67, 17, 42, 99, 34, -53, -85, -40, -54, 92, -35, 10, 73, 9, 0, 56, -40, 0, -44, -2, -50, -33, 42, 64, -65, 92, 78, 42, 40, 41, 84, 27, 78, -59, -24, 42, 47, -24, 66, -1, -15, 32, -23, -90, -89, -38, 17, -82, -76, 43, 89, 37, 48, -13, 54, 64, -21, -27, 74, -4, 30, 19, -74, 42, 18, 64, 39, 29, 45, 15, -43, 13, 9, -39, -46, -92, 91, -23, -55, 63, 40, -12, -5, 80, -39, -80, 16, -78, 91, 75, -46, 25, 19, 71, 17, -32, -61, -65, -24, -94, 67, 45, 73, 89, 50, 2, 19, -33, -30, 14, -47, 67, -67, 59, -90, -58, -57, -37, 14, 22, 10, -82, -14, 82, 88, -41, 26, 61, 87, 66, 36, 93, -15, -96, -24, -3, 68, -58, -63, -58, -75, 82, -98, -50, 7, -29, 87, -5, 80, -23, -79, -64, -97, -61, -3, 50, -93, -82, -63, -13, -16, 40, -25, 28, -89, 55, -17, -22, 66, 26, 83, 31, 71, -66, -60, -69, -60, -54, 28, 87, 39, 87, 89, 32, -37, 10, 30, -69, -9, 29, 32, 89, 100, 62, 73, 26, -61, -70, 90, -34, 54, -49, -88, 60, -99, 78, 37, 98, 6, 75, 95, -91, 89, 22, -31, -49, 65, 11, 9, -94, 17, -25, -25, -79, 13, -8, -86, -92, 0, 21, -34, 36, 58, 94, 75, 82, 10, 83, -57, 48, 69, 34, -46, 24, -1, -19, -48, -82, -95, -54, 86, 90, -91, 52, -63, 50, 87, 100, 48, -33, 76, -77, -23, -86, 84, 38, -86, -84, 24, -32, 52, -10, -71, 9, -30, -82, 65, 79, 38, 95, 2, 86, 95, -56, 74, 87, 48, -28, -92, -9, 70, -75, 49, -84, 37, -25, -32, 93, 88, -63, -80, 96, -14, 13, -8, -40, 60, 14, -28, 98, -1, -34, 51, 23, 74, -85, 53, 62, -67, 80, 30, -22, 41, 93, -58, -62, -35, -79, 22, -76, -100, -38, -45, 15, -50, 43, -30, 44, -27, 55, -70, -80, 67, 2, 48, 45, 49, -61, -4, -89, -90, 84, -47, -8, 62, 61, 21, 31, 94, 40, 20, 98, -73, 46, -64, -61, -69, -44, -84, 24, 83, -93, -6, -48, -75, -20, 92, -28, -55, 24, -18, -9, 31, -84, -100, 89, 50, -36, -5, 67, -67, 20, -90, -33, -29, 53, 77, -19, 68, -51, -30, -41, 22, 91, 7, -74, 38, -39, 71, 6, 73, 50, 44, 85, 9, 74, -29, -27, -39, -6, 29, 83, -18, -42, 91, 69, 58, 3, -60, 93, -39, -21, -77, 7, 12, -81, -99, 94, 12, -6, -82, 99, -31, -15, 0, -57, -100, 1, 54, -19, 47, 4, 39, -63, 38, -85, 20, 62, 47, -24, -74, -73, 17, -89, -4, 49, 71, -83, 88, 36, 11, 100, -71, 35, -46, -74, 11, 47, -96, 82, 45, 69, -25, 86, -27, -33, 25, -86, 91, 10, 62, 7, -56, 38, 86, 62, -28, -31, 15, -17, -100, -61, 96, 61, 80, 78, -87, -13, -59, -79, 62, 35},
848,
50592,
},
{
[]int{4, 2, 3},
1,
5,
},
{
[]int{3, -1, 0, 2},
3,
6,
},
{
[]int{2, -3, -1, 5, -4},
2,
13,
},
// 可以有多个 testcase
}
func Test_largestSumAfterKNegations(t *testing.T) {
ast := assert.New(t)
for _, tc := range tcs {
ast.Equal(tc.ans, largestSumAfterKNegations(tc.A, tc.K), "输入:%v", tc)
}
}
func Benchmark_largestSumAfterKNegations(b *testing.B) {
for i := 0; i < b.N; i++ {
for _, tc := range tcs {
largestSumAfterKNegations(tc.A, tc.K)
}
}
}