Algorithm
1079. Letter Tile Possibilities
class Solution {
public int numTilePossibilities(String tiles) {
int [] chars = new int[26];
for (char c: tiles.toCharArray()) {
chars[c - 'A']++;
}
return dfs(chars);
}
private int dfs(int[] chars) {
int sum = 0;
for (int i = 0; i < chars.length; i++) {
if (chars[i] == 0) {
continue;
}
sum++;
chars[i]--;
sum += dfs(chars);
chars[i]++;
}
return sum;
}
}
Review
https://www.developer.com/java/data/what-is-the-java-priority-queue.html
介紹了PriorityQueue仪吧,這個隊列比較少用到谤狡。顧名思義是一個優(yōu)先級隊列豪筝,支持自定義排序規(guī)則钾军,內(nèi)部邏輯是通過維護一個二叉小根堆實現(xiàn)顶岸,保證每次隊列頭都是最優(yōu)先(猩选)的元素沿癞。
一開始誤解這個類是全排序的隊列席赂,發(fā)現(xiàn)并不是吮铭,只是首個元素保證隊列中最小。
Tip
線上導線下數(shù)據(jù)庫工具失效氧枣,或者要排隊的情況下沐兵,可以從線上庫導出SQL語句,再導入線下
Share
Java 8 Streams map()
語言的語法特性越用會越熟練便监,最近在有意使用Java8 API中的stream扎谎,先從功能強大的map()方法開始。學到的最復雜的是從一個bean的list轉(zhuǎn)化成另一個bean的list烧董。