1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Solution {
public String largestWordCount(String[] messages, String[] senders) {
Map<String, Integer> senderWordCount = new HashMap<>();
String maxSender = "zzzzzzzzzzz";
int maxCount = 0;
for (int i = 0; i < messages.length; i++) {
senderWordCount.put(senders[i], senderWordCount.getOrDefault(senders[i], 0) + getWordCount(messages[i]));
if (senderWordCount.get(senders[i]) > maxCount
|| ((senderWordCount.get(senders[i]) == maxCount) && senders[i].compareTo(maxSender) > 0)) {
maxCount = senderWordCount.get(senders[i]);
maxSender = senders[i];
}
}
return maxSender;
}

private int getWordCount(String message) {
return message.split(" ").length;
}
}

用一个变量存maxSender是谁, 一个变量存maxCount是多少即可.

时间复杂度: O(n)
空间复杂度: O(n) 因为用了HashMap.