5
O(n)の複雑さで順序付けされた単語の頻度
Java開発者のポジションへのインタビュー中に、私は次のことを尋ねられました。 2つのパラメーターを取る関数を記述します。 テキストドキュメントを表すStringおよび 返すアイテムの数を提供する整数。 最も頻度の高い単語が最初に出現する単語の頻度で並べられた文字列のリストを返すように関数を実装します。ソリューションは時間で実行する必要がありますはドキュメントの文字数です。O(n)O(n)O(n)nnn 以下は私が(疑似コードで)答えたものです、それはソートのためにではなく時間です。どうやって回するのかわからない。 O(n)O(n)O(n)O(nlogn)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 : ++count; wordFrequencyMap.put(word, count); } return wordFrequencyMap.sortByValue.keys 誰かが知っているか、誰かが私にいくつかのヒントを与えることができますか?