這次的iThome鐵人賽,我計劃用30天的時間,每天分享LeetCode刷題的思路與解題技巧,並將過程中學到的演算法知識內化成自己的表達方式。這次比賽對自己的期許:不僅能夠正確解出題目,還要深入理解每個演算法,將其靈活運用。
背景電子工程系,經常使用Python等語言進行開發,但沒有系統學習過演算法,目前胡亂刷過約30題,主要集中在Easy難度,Medium題目只佔不到5%。
策略:將題目按照所涉及的演算法類型進行分類,並在每天刷完題後撰寫演算法筆記,加深記憶、增強對演算法的掌握。
趕在報名截止前決定參賽,目的是給自己持續學習的動力,期待這次挑戰能讓我在演算法上有所突破!
前情提要 今天是挑戰的第一天,先來歸納一下我這30天內需要達成的目標及挑戰內容,並從我的背景開始講起。 本身畢業於電子工程系,經常使用Python等語言進行開發...
112. Path Sum [Easy]### 在二元樹中,判斷是否存在一條從根到葉子的路徑,路徑上節點值的總和等於 targetSum。 class Solu...
257. Binary Tree Paths 給定一棵 Binary Tree,要求找出所有從根節點到葉子節點的路徑,並以字符串形式返回,每一條路徑以「->...
前言 今天要學習的內容雖然很基礎,但卻是許多進階算法的根基。這些資料結構在解題時非常常用,不管是操作數組、處理鏈表,還是實現棧與佇列,理解它們的概念和應用至關重...
線性排序法 線性排序(Linear sort),指的是時間複雜度為O(n)的排序演算法,之所以時間複雜度能達到線性,是因為這種排序非基於比較的,但它的適用場景也...
五大演算法策略 枚舉法 枚舉法是一種通過列舉所有可能解,然後篩選出符合條件或最優解的解題方法,也教作暴力破解法,適合於解決問題規模較小的情況。 特點 全解空...
題目練習 請ChatGPT幫我根據本週學習到的類型,隨機出幾道題目。 121. Best Time to Buy and Sell Stock 要求我們在一個股...
本週目標 進入挑戰的第二週了,這週的單元為"Tree",理解二元樹結構與其前/中/後序遍歷邏輯,以及學習二元樹搜索演算法,包含: Quic...
二元搜索樹 Quick Sort(快速排序) Quick Sort 是一種分治法的排序演算法。它的核心思想是選取一個基準值(pivot),將數列分成兩部分,左邊...
繼續刷題 按照慣例,請ChatGPT幫我根據學習範圍出題,二元樹、BST、Tree Sort、Quick Sort、Merge Sort主題的LeetCode題...