可能重复:
查找数组中的最大重复元素
如果有一个词流,其中一个词的出现率在51%以上,如果只有string我们怎么能找到出现频率最高的词呢,内存中可以一次存一个int来帮助我们找到。
我们只能访问每个单词一次,因为这是一个流。
不需要特定的语言,但这主要是针对 Java 的。
另外我不是要代码,只是想法。:)
可能重复:
查找数组中的最大重复元素
如果有一个词流,其中一个词的出现率在51%以上,如果只有string我们怎么能找到出现频率最高的词呢,内存中可以一次存一个int来帮助我们找到。
我们只能访问每个单词一次,因为这是一个流。
不需要特定的语言,但这主要是针对 Java 的。
另外我不是要代码,只是想法。:)
为了完整起见,在我指出的副本中提出的算法的 Java 实现,应用于一个示例:
public static void main(String[] args) throws InterruptedException {
List<String> list = Arrays.asList("a", "b", "c", "a", "d", "e", "a", "a", "b", "b", "a");
int counter = 0;
String mostFrequentWord = "";
for (String streamed : list) {
if (streamed.equals(mostFrequentWord)) {
counter++;
} else if (counter == 0) {
mostFrequentWord = streamed;
counter = 1;
} else {
counter--;
}
}
System.out.println(mostFrequentWord);
}