2
public List<String> invalidTransactions(String[] transactions) {3
Map<String, List<Transaction>> nameToTransaction = new HashMap<>();4
for (int i = 0; i < transactions.length; i++) {5
Transaction t = new Transaction(transactions[i], i);6
nameToTransaction.putIfAbsent(t.name, new ArrayList<>());7
nameToTransaction.get(t.name).add(t);9
List<String> invalid = new ArrayList<>();10
for (List<Transaction> list : nameToTransaction.values()) {11
for (Transaction t : list) {12
if (t.isInvalidAmount()) invalid.add(transactions[t.id]);14
for (Transaction otherT : list) {15
if (t.isInvalidCity(otherT)) {16
invalid.add(transactions[t.id]);31
Transaction(String s, int id) {33
String[] split = s.split(",");35
time = Integer.parseInt(split[1]);36
amount = Integer.parseInt(split[2]);40
boolean isInvalidAmount() {41
return this.amount > 1000;44
boolean isInvalidCity(Transaction t) {45
return !city.equals(t.city) && Math.abs(t.time - time) <= 60;