題目:
給一非空的單詞列表,返回前 k 個出現次數最多的單詞。
返回的答案應該按單詞出現頻率由高到低排序。如果不同的單詞有相同出現頻率,按字母順序排序。
示例 1:
輸入: [
"i", "love", "leetcode", "i", "love", "coding"
], k = 2
輸出: [
"i", "love"
]解析: "i" 和 "love" 為出現次數最多的兩個單詞,均為2次。
注意,按字母順序 "i" 在 "love" 之前。
原始碼:
class solution
// 把這些單詞放在乙個 arraylist 當中,並進行排序
// 自定義比較規則
list result = new arraylist<
>
(map.keyset());
// sort方法的第二個引數中指定乙個比較器物件
// 來描述自定製比較規則(按出現次數來排序)
collections.sort(result, new mycomp(map))
; // sublist 能夠返回乙個 list 中的子區間
// [0,k)前閉後開區間
return result.sublist(0, k);}
class mycomp implements comparator
@override
public int compare(string o1, string o2)
// 降序排序寫成 count2 - count1
// 公升序排序寫成 count1 - count2
return count2 - count1;}}
}
前K個高頻單詞 leetcode 692
給一非空的單詞列表,返回前 k 個出現次數最多的單詞。返回的答案應該按單詞出現頻率由高到低排序。如果不同的單詞有相同出現頻率,按字母順序排序。示例 1 輸入 i love leetcode i love coding k 2 輸出 i love 解析 i 和 love 為出現次數最多的兩個單詞,均為...
LeetCode692 前K個高頻單詞
給一非空的單詞列表,返回前 k 個出現次數最多的單詞。返回的答案應該按單詞出現頻率由高到低排序。如果不同的單詞有相同出現頻率,按字母順序排序。示例 1 輸入 i love leetcode i love coding k 2 輸出 i love 解析 i 和 love 為出現次數最多的兩個單詞,均為...
leetcode 692 前K個高頻單詞
使用hashmap記錄 單詞 與 對應的出現次數hashmap 將map中的鍵放入列表list中排序 排序規則 如果出現次數相同,則直接使用字元轉的排序規則 如果出現次數不同,則按照次數從大到小排序 class solution listkeys new arraylist for map.entr...