Java開発者のポジションへのインタビュー中に、私は次のことを尋ねられました。
2つのパラメーターを取る関数を記述します。
- テキストドキュメントを表すStringおよび
- 返すアイテムの数を提供する整数。
最も頻度の高い単語が最初に出現する単語の頻度で並べられた文字列のリストを返すように関数を実装します。ソリューションは時間で実行する必要がありますはドキュメントの文字数です。
以下は私が(疑似コードで)答えたものです、それはソートのためにではなく時間です。どうやって回するのかわからない。
wordFrequencyMap = new HashMap<String, Integer>();
words = inputString.split(' ');
for (String word : words) {
count = wordFrequencyMap.get(word);
count = (count == null) ? 1 : ++count;
wordFrequencyMap.put(word, count);
}
return wordFrequencyMap.sortByValue.keys
誰かが知っているか、誰かが私にいくつかのヒントを与えることができますか?
Hashtable
レガシーJava であるかどうかは、このサイトの目的とは無関係です。