https://leetcode.com/problems/pyramid-transition-matrix/submissions/1868719957
終於寫到一題有難度的 medium 了!!這一題若是沒有看過,光理解題目就要花點時間了。
理解題目後我第一時間想到的做法是 recursive:每一個 level 的 block 都去遍歷所有可能性的下一個 level 組合。看起來有點饒口,簡單來說就是每個 level 先找出所有上一層的可能性組合,這裡要透過 allowed 來做比對。找到後去一個一個的 recursive 繼續找,就是 DFS + DP 的做法。
想法很快就有了,但構建程式碼過程真的是很痛苦,畢竟 recursive 的程式碼本就容易寫錯。好不容易寫完後卻是有幾筆測資 TLE,才發現太多相似的 pattern 會被重複做 recursive,在我的做法裡這非常得耗時,因此我們需要適當的剪枝。我用的方式也沒啥特別的就是用 map,參考他的 input 規範,用 map 應該是還不會爆。
anyway 這一題 AC 真是困難重重,花了兩三個小時,最後拿到 beat 42% 的成績(memory 更是慘不忍睹這邊不提QQ)。感覺演算法的部分跟別人大差不差,之後再來看看別人都做了些啥。