2

可能重复:
查找数组中的最大重复元素

如果有一个词流,其中一个词的出现率在51%以上,如果只有string我们怎么能找到出现频率最高的词呢,内存中可以一次存一个int来帮助我们找到。

我们只能访问每个单词一次,因为这是一个流。

不需要特定的语言,但这主要是针对 Java 的。

另外我不是要代码,只是想法。:)

4

1 回答 1

0

为了完整起见,在我指出的副本中提出的算法的 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);
}
于 2012-07-18T18:33:28.203 回答