复杂度为O(n)的词频
在接受Java开发人员职位面试时,有人问我以下问题: 编写一个具有两个参数的函数: 代表文本文档的字符串,以及 提供要返回的项目数的整数。 实现函数,使其返回按单词频率排序的字符串列表,最频繁出现的单词在前。您的解决方案应在时间运行,其中是文档中的字符数。nO (n )O(n)O(n)ñnn 以下是我的回答(用伪代码),由于排序,它不是,而是时间。我不知道该怎么做时间。 O (n log n )O (n )O (n )O(n)O(n)Ø (ñ 日志n )O(nlogn)O(n \log n)O (n )O(n)O(n) wordFrequencyMap = new HashMap<String, Integer>(); words = inputString.split(' '); for (String word : words) { count = wordFrequencyMap.get(word); count = (count == null) ? 1 : …