本次自主學習以 LeetCode 演算法題目為主軸,透過 30 天的連續實作,學習常見的資料結構與演算法,例如陣列、雜湊表、鏈結串列、堆疊、佇列、樹、搜尋、排序、動態規劃等。每個單元將選擇一個 LeetCode 題目,分別使用 Java 與 Python 實作,整理解題思路、程式碼及時間與空間複雜度,並比較兩種程式語言在語法、實作方式與解題上的差異。希望透過持續練習提升程式設計、問題分析與演算法思考能力,並累積實際撰寫程式與解決問題的經驗。
一、今日學習目標今天開始第一天的Leetcode演算法實作,主要學習Hash Table(雜湊表)的基本概念,以及如何利用Hash Table降低搜尋資料所需要...
一、今日學習目標 今天學習Stack(堆疊)的概念,並了解LIFO(Last In, First Out,後進先出)的特性,以及如何運用Stack處理具有階層或...
一、題目介紹 本題為LeetCode的Best Time to Buy and Sell Stock。給定一個整數陣列prices,其中prices[i]代表第...
一、題目介紹本題為LeetCode的Valid Palindrome。給定一個字串s,判斷它是否為回文(Palindrome)。判斷時需要: 只考慮英文字母與...
一、題目介紹本題為LeetCode的Binary Search。給定一個已經按照遞增順序排列的整數陣列nums,以及一個目標值target。需要在陣列中尋找ta...
一、題目介紹本題為LeetCode的 Merge Two Sorted Lists。 給定兩個已經按照遞增順序排列的Linked List:list1、list...
一、題目介紹本題為LeetCode的Reverse Linked List給定一個單向Linked List,需要將整個Linked List的節點順序反轉,最...
一、題目介紹本題為LeetCode的Linked List Cycle給定一個Linked List,需要判斷其中是否存在一個循環(Cycle) 正常的Link...
一、題目介紹今天要解的題目是LeetCode的Maximum Depth of Binary Tree,中文可以稱為「二元樹的最大深度」。 題目會給定一棵二元樹...
一、題目介紹今天要解的題目是LeetCode的Invert Binary Tree,中文可以稱為「反轉二元樹」。 題目會給定一棵二元樹root,需要將這棵樹進行...