前K個高頻單詞 leetcode 692

2021-10-06 14:43:39 字數 2586 閱讀 4438

給一非空的單詞列表,返回前 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 次。

注意:
class

solution

//構建hashmap

$map=[

];foreach

($words

as$w

)else

}$arr=[

];foreach

($map

as$word

=>

$num

)unset

($map);

$len

=count

($map);

//構建heap

for($i=

0;$i<$k;

$i++

)$this

->

len=

count

($this

->

heap);

$this

->

create_heap()

;//追加

for($i=

$k;$i<

$len;$i

++)elseif(

$this

->

heap[0

]['num']==

$arr[$i

]['num'])

}else

}//排序

$this

->

sort()

;$ret=[

];foreach

($this

->

heap

as$item

)return

$ret;}

function

create_heap()

}/**

* 根index 調整某棵樹的左右節點

**/function

adjust_heap

($index)$l

=($index

<

<1)

+1;$r

=($index

<

<1)

+2;$min

=$index;if

($l<

$len

&&$this

->

heap[$l

]['num'

]<

$this

->

heap

[$min][

'num'])

if($l<

$len

&&$this

->

heap[$l

]['num']==

$this

->

heap

[$min][

'num']&&

$this

->

heap[$l

]['word'

]>

$this

->

heap

[$min][

'word'])

if($r<

$len

&&$this

->

heap[$r

]['num'

]<

$this

->

heap

[$min][

'num'])

if($r<

$len

&&$this

->

heap[$r

]['num']==

$this

->

heap

[$min][

'num']&&

$this

->

heap[$r

]['word'

]>

$this

->

heap

[$min][

'word'])

if($min

!=$index)}

public

function

sort()

}}

演算法 leetcode 前K個高頻單詞

給一非空的單詞列表,返回前 k 個出現次數最多的單詞。返回的答案應該按單詞出現頻率由高到低排序。如果不同的單詞有相同出現頻率,按字母順序排序。使用map統計詞頻,並構建兩個list以相同順序分別存放詞頻和對應字串 構建最小堆,根據詞頻同步調整兩個list 注意比較兩個單詞詞頻的時候,如果詞頻相等,還...

前k個高頻單詞

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

前K個高頻單詞

解題思路 static class mycomparator implements comparator override public intcompare string o1,string o2 o1 o1 o2返回 0 o1 o2返回0 count1 count2公升序排序 count2 co...