文章
- LeetCode 筆記 - 977. Squares of a Sorted Array 要求將包含負數的已排序數列進行平方後再次排序。本文探討如何利用雙指針從兩端向中間掃描的技巧,巧妙處理負數平方後的數值變化,達成在 O(N) 線性時間內完成平方與排序的優化解法。
- LeetCode 筆記 - 1379. Find a Corresponding Node of a Binary Tree in a Clone of That Tree 本文探討如何在複製的二元樹中找出對應目標節點的參照。這是一個典型的樹遍歷問題,透過同步探索原始樹與複製樹,能快速定位目標。本文提供基礎的 Tree Traversal 實作思路,幫助讀者掌握遞迴搜尋技巧。
- LeetCode 筆記 - 419. Battleships in a Board 解析如何在不使用額外空間(O(1) space)的情況下計算矩陣中的戰艦數量。關鍵在於只統計戰艦的「左上角」起點。透過檢查每個戰艦格位上方與左方是否為空,能精確識別出每艘船的首位,達成高效且簡潔的計數邏輯。
- LeetCode 筆記 - 35. Search Insert Position 針對已排序數列,尋找目標值的索引或其應插入的位置。本文展示二元搜尋(Binary Search)的變體應用,透過不斷折半範圍,能以對數級時間複雜度快速鎖定定位。這是一篇掌握排序數列搜尋與邊界處理技巧的基礎筆記。
- LeetCode 筆記 - 278-First-Bad-Version 面對尋找第一個損壞版本的問題,本文展示二元搜尋(Binary Search)的經典應用。透過不斷折半縮小搜尋範圍,能以對數級時間複雜度快速鎖定故障點,是開發者在處理有序範圍搜尋問題時的必備演算法知識。
- LeetCode 筆記 - 704. Binary Search LeetCode 必修基礎題,實作標準的二元搜尋。本文回歸演算法核心,展示如何透過 left、right 指針折半縮小搜尋區間,並精確找出目標值的索引。這是一篇適合初學者鞏固 O(log N) 搜尋效率概念的範例實作。
- LeetCode 筆記 - 103. Binary Tree Zigzag Level Order Traversal 這是一篇關於 LeetCode 第 103 題的解題筆記。題目要求對二元樹進行之字形(Zigzag)層序遍歷。本文解析如何運用廣度優先搜尋(BFS)策略,並透過每層順序翻轉的技巧,高效搜集並排列每一層的節點數值。
- LeetCode 筆記 - 1091. Shortest Path in Binary Matrix 針對 LeetCode 第 1091 題,探討在二元矩陣中尋找最短路徑的方法。本文指出該問題非常適合使用廣度優先搜尋(BFS)演算法解決,一旦觸及終點即可停止搜尋,確保在複雜地圖中以最快速度找出最優路徑。
- LeetCode 筆記 - 1302. Deepest Leaves Sum 針對 LeetCode 第 1302 題,計算二元樹最深層葉子節點的總和。解題關鍵在於利用廣度優先搜尋(BFS)依序探索每一層節點,最終鎖定最底層的所有成員並加總其數值,是一篇理解層序遍歷應用的實用筆記。
- Python 如何正確初始化二維陣列 在 Python 中使用 [[]] * 3 初始化二維陣列常會導致所有子陣列同步連動的錯誤。本文解析此現象背後的記憶體參照機制,並分享正確的初始化寫法,避免資料存取異常。這是一篇幫助開發者繞過 Python 列表初始化常見陷阱的實用筆記。
- LeetCode 筆記 - 844. Backspace String Compare 判定兩個包含退位鍵符號的字串在模擬刪除操作後是否相等。本文解析如何透過遍歷字串並處理 # 符號來還原真實字串內容。內容直白簡練,適合掌握基礎字串模擬與處理邏輯的練習。
- LeetCode 筆記 - 117. Populating Next Right Pointers in Each Node II 相較於 116 題,本題處理一般二元樹的向右指針設置。關鍵在於如何正確找出同一層的所有節點。本文分享利用廣度優先搜尋(BFS)來掌握層次結構,確保在不規則的樹狀結構中,每個節點都能正確指向其右側鄰居。
- LeetCode 筆記 - 116. Populating Next Right Pointers in Each Node 探討 LeetCode 第 116 題,在完美二元樹中為每個節點建立向右的 next 指針。本文利用完美二元樹的結構特性,透過遞迴邏輯將左子節點指向右子節點,並跨節點連接,提供簡潔高效的遍歷與指針設置解法。
- LeetCode 筆記 - 77. Combinations 針對組合生成問題,本文比較了深度優先搜尋(DFS)與分治法(Divide and Conquer)的效能差異。最終採用分治法策略,透過逐步組合子規模的結果,達成比傳統遞迴更高效的組合生成,優化了大範圍數據下的執行效率。
- LeetCode 筆記 - 743. Network Delay Time 探討訊號在網路拓撲中抵達所有節點的最短時間。本文引導讀者實作經典的 Dijkstra 演算法,透過優先權隊列(Priority Queue)動態更新起點到各節點的最短路徑。這是一篇掌握權重圖最短路徑計算的標準教學。
- LeetCode 筆記 - 47. Permutations II 針對包含重複元素的數列生成全排列。本文分享在遞迴過程中加入判別邏輯的小技巧,透過排序與分支剪枝,有效避免產出重複的組合。這是一篇關於如何優化經典遞迴演算法以應對特殊約束條件的實務心得。
- LeetCode 筆記 - 46. Permutations 全排列問題的經典解析。本文介紹深度優先搜尋(DFS)與交換元素(SWAP)兩種主流解法,並針對兩者的時間複雜度進行深入對比。這是一篇幫助讀者掌握遞迴思維、理解排列組合生成邏輯以及演算法複雜度評估的技術指南。
- LeetCode 筆記 - Count Sorted Vowel Strings 計算長度為 n 且按字典序排列的母音組合數量。作者跳出傳統遞迴,運用高中數學的「隔板法」將問題轉化為組合公式。透過 O(1) 的數學運算直接求出解答,展示了數學建模在解決計算問題時的極致效率。
- LeetCode 筆記 - 7. Reverse Integer LeetCode 第 7 題解析,要求將一個 32 位元的有號整數進行反轉。本文分享如何透過基礎的數學運算處理位元反轉,並特別提醒開發者注意反轉後可能產生的數值溢位(Overflow)問題,確保結果符合 32 位元整數的範圍限制。
- LeetCode 筆記 - Implement strStr() 實作 C 語言中的 strstr() 函數,尋找子字串出現的起始索引。本文採取直覺且高效的模擬遍歷方式,在 O(N) 複雜度內完成字串匹配。這是一篇掌握基本字串搜尋邏輯與邊界處理的開發隨筆。
- LeetCode 筆記 - Longest Palindromic Substring 挑戰尋找最長迴文子字串。本文深度解析 Manacher 演算法,透過對稱性質避免重複比較,將搜尋時間從 O(N^2) 優化至線性 O(N)。文中詳述演算法的推導過程與實作細節,是理解進階字串演算法的首選筆記。
- LeetCode 筆記 - Median of Two Sorted Arrays 在兩個已排序數列中尋找合併後的中位數。本文分享如何透過部分合併的技巧,僅遍歷至中位數所需長度即可得出解答。這種優化策略能有效控制計算量,在維持 O(N) 線性複雜度的同時,提升求取中位數的速度。
- LeetCode 筆記 - Longest Substring Without Repeating Characters 尋找最長不重複子字串的長度。本文解析滑動視窗(Sliding Window)配合哈希表(Map)的優化策略。透過記錄字元與其最後出現索引,能動態調整視窗起點,在單次遍歷中精確計算出最大不重複區段,大幅提升效率。
- LeetCode 筆記 - Add Two Numbers 解析如何相加兩個以反序鏈結串列表示的龐大整數。本文引導讀者依序處理進位邏輯,並同步建立新的鏈結串列來存儲結果。這是一篇掌握基本鏈結串列操作與大數運算模擬邏輯的經典實作筆記。
- LeetCode 筆記 - 1. Two Sum 針對 LeetCode 第 1 題,探討如何在數列中快速找出相加等於目標值的兩個數字。本文解析如何運用哈希表(Hash Map)記錄已遍歷過的數字及其索引,將搜尋複雜度從暴力解的 O(N^2) 優化至線性 O(N),是理解空間換取時間的經典案例。
- 在 iOS 新增「社交距離 app」捷徑 為了在進入公共場所時能快速出示「社交距離 app」,本文分享一個簡單的 iOS 捷徑配置。透過連結下載並安裝,使用者可一鍵啟動 app,跳過繁瑣的手動尋找過程,並提供處理「不信任來源」問題的設定建議。
- 調整 PyCharm 檔案大小限制 在使用 PyCharm 瀏覽大型 JSON 檔案時,常因超過預設大小限制而導致語法上色失效。本文教學如何透過編輯自定義屬性設定,手動解開 idea.max.intellisense.filesize 的束縛,讓開發者能流暢地處理與閱讀大體積資料檔。
- 使用 crontab 排程自動化你的工作 介紹 Linux 與 Mac 系統內建的排程工具 crontab。本文教學如何透過編輯指令設定自動化任務,讓電腦在指定時間固定執行特定工作。內容包含基礎編輯方法、管理者權限切換以及確保任務穩定執行的實務技巧。
- HackMD - 深色主題 HackMD 愛用者必看的護眼攻略。本文介紹如何透過導入自定義指令碼,為 HackMD 介面套用深色主題(Dark Theme)。除了提供推薦的樣式來源,也提醒使用者善用引用與備份功能,確保在舒適的視覺環境下進行文件撰寫。
- 跑馬燈圖片工具 為了快速產生類似 Slack 上常見的單字跑馬燈 GIF,作者開發了一款圖片產生工具。本文介紹如何透過簡單的參數設定(如每字張數、延遲時間等),批次自動化產出客製化的跑馬燈圖片,大幅節省手作時間並提升趣味性。