前K個高頻單詞

2021-10-07 05:15:22 字數 1288 閱讀 6132

解題思路:

static

class

mycomparator

implements

comparator

@override

public

intcompare

(string o1, string o2)

//o1//o1>o2返回》0

//o1==o2返回0

//count1-count2公升序排序

//count2-count1降序排序

//sort就是按照公升序來排序,小的在前,大的在後

//count1-count2就是定義了出現次數比較少的比較小

//count2-count1就是定義了出現次數比較大的比較小

return count2-count1;}}

public list

topkfrequent

(string[

] words,

int k)

//2.把剛才這裡的統計得到的字串內容放到arraylist中

//keyset相當於得到了乙個set,set中存放的就是所有的key

arraylist

arraylist=

newarraylist

(map.

keyset()

);//3.按照剛才字串出現次數,針對arraylist進行排序

//sort預設是按照元素的自身大小進行公升序排序(string的字典序)

//此處我們需要按照字串出現次數來降序排序

collections.

sort

(arraylist,

newmycomparator

(map));

return arraylist.

sublist(0

,k);

}

在上面的思路中除了在外部建立構造器,也可以在類的內部使用匿名內部類來完成比較

//另一種思路,匿名內部類

//不知道類名字是啥,但是知道這個類實現了comparator介面

//這個類只需要使用一次,使用完就丟了

collections.

sort

(list,

newcomparator

()return count2-count1;}}

);

前k個高頻單詞

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

前K個高頻單詞

題目鏈結 public static listtopkfrequent string words,int k set set hashmap.entryset list list new arraylist set collections.sort list,new comparator int c...

python 前k個高頻單詞

給一非空的單詞列表,返回前 k 個出現次數最多的單詞。返回的答案應該是按單詞出現頻率有高到低排序。如果不同的單詞有相同出現頻率,按照字母順序排序。import numpy as np defresult 1 str list,k str list set np.sort list set str l...