1.給一非空的單詞列表,返回前 k 個出現次數最多的單詞。
返回的答案應該按單詞出現頻率由高到低排序。如果不同的單詞有相同出現頻率,按字母順序排序。
力扣題:
思路:1.統計每個單詞出現的次數 wordtocount
2.得到,每個出現次數下,有哪些單詞
3.取出所有的次數[2,1]並對其排序
4.招聘人
招聘3人,先按照分數從高到低選人
如果當前分數下的人數小於等於還差人數,全選進來
public class p4
}//統計單詞出現的次數
mapcount(string words)
return wordtocount;
}//每個次數 ——>那些單詞
private static map> remap(mapwordtocount)
wordlist.add(word);
}return counttowordlist;
}//先確定單詞對應—>次數 ,再反轉次數—>單詞,獲取出現頻數最高的前k個且按字母順序有序排列列印
public listtopkfrequent(string words,int k)
arrays.sort(counts);
//錄取名單
listresult = new arraylist<>();
int j = 0; //已錄取的名單
int index = counts.length - 1; //當前選擇的分數,因為從小到大排序
comparatorcomparator = new stringcomparator(); //按照字母順序排序
while(j < k)else
}return result;
}public static void main(string args) ;
listr = new p4().topkfrequent(words,3);
system.out.println(r);
}}
前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...
前K個高頻單詞
題目鏈結 public static listtopkfrequent string words,int k set set hashmap.entryset list list new arraylist set collections.sort list,new comparator int c...