-
Notifications
You must be signed in to change notification settings - Fork 502
/
a.go
42 lines (39 loc) · 776 Bytes
/
a.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
package main
import (
"strconv"
"strings"
)
func invalidTransactions(transactions []string) (ans []string) {
abs := func(x int) int {
if x < 0 {
return -x
}
return x
}
n := len(transactions)
bad := make([]bool, n)
for i, ti := range transactions {
splitsI := strings.Split(ti, ",")
amount, _ := strconv.Atoi(splitsI[2])
if amount > 1000 {
bad[i] = true
}
timeI, _ := strconv.Atoi(splitsI[1])
for j, tj := range transactions {
splitsJ := strings.Split(tj, ",")
if splitsJ[0] == splitsI[0] && splitsJ[3] != splitsI[3] {
timeJ, _ := strconv.Atoi(splitsJ[1])
if abs(timeI-timeJ) <= 60 {
bad[i] = true
bad[j] = true
}
}
}
}
for i, b := range bad {
if b {
ans = append(ans, transactions[i])
}
}
return
}