LeetCode第692題前K個高頻單詞

2021-10-09 15:33:45 字數 1272 閱讀 5012

題目**

題目描述

給一非空的單詞列表,返回前 k 個出現次數最多的單詞。

返回的答案應該按單詞出現頻率由高到低排序。如果不同的單詞有相同出現頻率,按字母順序排序。

示例 1:

輸入: [「i」, 「love」, 「leetcode」, 「i」, 「love」, 「coding」], k = 2

輸出: [「i」, 「love」]

解析: 「i」 和 「love」 為出現次數最多的兩個單詞,均為2次。

注意,按字母順序 「i」 在 「love」 之前。

示例 2:

輸入: [「the」, 「day」, 「is」, 「sunny」, 「the」, 「the」, 「the」, 「sunny」, 「is」, 「is」], k = 4

輸出: [「the」, 「is」, 「sunny」, 「day」]

解析: 「the」, 「is」, 「sunny」 和 「day」 是出現次數最多的四個單詞,

出現次數依次為 4, 3, 2 和 1 次。

注意:假定 k 總為有效值, 1 ≤ k ≤ 集合元素數。

輸入的單詞均由小寫字母組成。

小知識點

對於list:void add(int index, e element)可以在插入操作過程中指定插入的位置,此時,會自動將當前位置及只有的元素後移進行插入

解題思路

使用小根堆

**

class

solution

priorityqueue

> pq =

newpriorityqueue

<

>

((a,b)

-> a.

getvalue()

== b.

getvalue()

? b.

getkey()

.compareto

(a.getkey()

): a.

getvalue()

- b.

getvalue()

);for(map.entry

entry : map.

entryset()

)while

(!pq.

isempty()

) result.

add(

0, pq.

poll()

.getkey()

);return result;

}}

LeetCode692題 前K個高頻單詞

題目描述 給一非空的單詞列表,返回前 k 個出現次數最多的單詞。返回的答案應該按單詞出現頻率由高到低排序。如果不同的單詞有相同出現頻率,按字母順序排序。示例 1 輸入 i love leetcode i love coding k 2 輸出 i love 解析 i 和 love 為出現次數最多的兩個...

LeetCode 692 前K個高頻單詞

題目 給一非空的單詞列表,返回前 k 個出現次數最多的單詞。返回的答案應該按單詞出現頻率由高到低排序。如果不同的單詞有相同出現頻率,按字母順序排序。示例 1 輸入 i love leetcode i love coding k 2 輸出 i love 解析 i 和 love 為出現次數最多的兩個單詞...

前K個高頻單詞 leetcode 692

給一非空的單詞列表,返回前 k 個出現次數最多的單詞。返回的答案應該按單詞出現頻率由高到低排序。如果不同的單詞有相同出現頻率,按字母順序排序。示例 1 輸入 i love leetcode i love coding k 2 輸出 i love 解析 i 和 love 為出現次數最多的兩個單詞,均為...