322. Coin Change - Medium 前往題目 搬運~ 想法 這應該算是我第一個正式想過的dynamic programming題目了 難到爆 期待融會貫通的那天 答案幾乎只能用抄的 思路 用DP bottom up的方式從amount是0的時候開始,因為amount為0一定是用0個硬幣 從amount為1循環到amount本身 每個循環都檢查每個coin是否能被納入考量,amount - coin為正整數時就代表可能可以被當作答 2024-01-20 Leetcode > Medium #Leetcode #心得 #Array #Dynamic Programming #Breadth-First Search
208. Implement Trie (Prefix Tree) - Medium 前往題目 之前寫過,搬運一下 想法 大概念是看影片才得來 一半是自己照著概念寫出來的 但class之間attribute的操作不熟練 而且原來inner class的private,包含他的class是可以存取的 本來想說要寫get set,但根本不用 思路 新建TrieNode class,用以表示Trie的節點 每個node都有自己的children Trie物件裡新增instance v 2024-01-20 Leetcode > Medium #Leetcode #心得 #String #Hash Table #Trie #Design
如何寫好git commit message 本篇筆記搬運以及修改WadeHuang大大的部分文章:Git Commit Message 這樣寫會更好,替專案引入規範與範例 寫好commit訊息,造福同行,也為自己積陰德 怎麼寫比較好? 註解紀錄在commit裡面可以保持程式碼的整潔和可讀性 獨立commit每個不同意義的異動才不會混在一起 Commit只包含: Why和What Commit加上issue編號方便追蹤異動原因 規範範例 詳 2024-01-19 綜合 #git
華碩智慧輸入法-繼十年前的好打注音後又一強大好用的輸入法 官網 原本只限華碩電腦可使用,現在已開放在microsoft store下載 特點: 注音/英文混合輸入(無需切換中英) 選詞演算法優化 自動預測字詞 快速輸入各式各樣的標點和特殊符號 框選查詢(可直接英翻中) 刪除贅字(自動刪除多打的字) 自訂詞彙 快捷文字本,快速輸入地址、姓名等自訂義字詞 實測兩個禮拜覺得很好用,直接把微軟內建的注音刪掉了,雖然偶爾會出現要打英文卻跑出中文,但 2024-01-19 綜合 #注音輸入法
190. Reverse Bits - Easy 前往題目 想法 沒想法,對bit manipulation不熟 思路 重複以下步驟32次,因為有32個bit 把result左移1,以空出最後一個bit,然後把n的最後一個bit加入(這樣n的最後一位就會變成result的第一位) 把n往右移(去除最後一位) Codepublic class Solution { // you need treat n as an unsi 2024-01-19 Leetcode > Medium #Leetcode #心得 #Bit Manipulation #Divide and Conquer
108. Convert Sorted Array to Binary Search Tree - Easy 前往題目 想法 也是很久以前做過的題目了,但完全忘了怎麼寫 思路 binary search就可以建構出這個tree Codeclass Solution { public TreeNode sortedArrayToBST(int[] nums) { return createTree(nums, 0, nums.length - 1); 2024-01-19 Leetcode > Medium #Leetcode #心得 #Binary Search Tree #Binary Tree #Array #Tree #Divide and Conquer
9. Palindrome Number - Easy 前往題目 想法 很久以前做過的題目,只記得轉成string,忘了不轉要怎麼弄 思路 用mod特性建立x的reverse 比較reversed x和x是否相等 Codeclass Solution { public boolean isPalindrome(int x) { // Negative number is always false 2024-01-19 Leetcode > Medium #Leetcode #心得 #Math
863. All Nodes Distance K in Binary Tree - Medium 前往題目 想法 直接把target當root,執行DFS 思路就差了一點,忘了從target開始得想辦法往parent那邊找 把所有child的parent都紀錄起來 dfs尋找,只要再多加上找target的parents 利用visited(hashset)防止重複加入node visited是為了找parent的時候不重複加入已經檢查過的node Code討論區答案 class Sol 2024-01-18 Leetcode > Medium #Leetcode #心得 #Binary Tree #Depth-First Search #Breadth-First Search #Tree
787. Cheapest Flights Within K Stops - Medium 前往題目 思路Bellman-ford 用額外的array儲存從source到dest.的距離 執行k+1次,因為題目的k是指幾個stop 每輪都走一遍所有的flights,有更短的距離就更新,最後回傳,如果是MAX_VALUE就回傳-1 比較難理解的是用tempPrices儲存當前暫時的prices,走完flights後再給prices,這部分是因為如果不用temprices的話會不知道當 2024-01-18 Leetcode > Medium #Leetcode #心得 #Dynamic Programming #Depth-First Search #Breadth-First Search #Graph #Heap (Priority Queue) #Shortest Path
143. Reorder List - Medium 前往題目 想法 用hashmap存,每一個對應的數字,然後再一次循環把全部拼起來 思路意外的好理解,因為都是用到之前寫過的演算法 找到middle node(快慢指針) 把middle之後的,也就是second half反轉 再和first half合併(因為此時second half已經反轉,可以直接接上) Code class Solution { public v 2024-01-16 Leetcode > Medium #Leetcode #心得 #Stack #Recursion #Two Pointers #Linked List