Skip to content

MengzhongRe/algorithm_and_datastructure

Repository files navigation

🚀 LeetCode Journal & Algorithm Notes

Python LeetCode License Status

"Algorithm is the art of efficiency."

本仓库用于系统性记录我的算法学习之路。不仅仅是 AC 的代码堆砌,更包含了解题思路的推导数学证明以及通用算法模板的提炼。

📖 核心目标 (Goals)

  • 工程化 (Engineering): 所有代码均包含详细注释,遵循 PEP8 规范,具备可读性与可复用性。
  • 体系化 (Systematic): 从线性的数组链表到非线性的树与图,再到动态规划与贪心,构建完整的知识图谱。
  • 深度化 (In-depth): 拒绝死记硬背,通过 README.md 复盘每道题的时间复杂度空间复杂度,探究最优解。

📂 项目结构 (Structure)

.
├── 📂 day01_array/            # 按天/专题组织的训练单元
│   ├── solution.py            # Python 题解源码 (Type Hinted)
│   └── README.md              # 📝 核心:解题思路、图解与复杂度分析
├── 📂 day23_subsequence/
│   ├── ...
├── 📂 notes/                  # 🧠 核心资产:通用算法模板
│   ├── dp_knapsack_template.md
│   ├── backtracking_template.md
│   └── binary_tree_patterns.md
└── README.md                  # 项目主页

🗓️ 刷题进度 (Progress)

Phase 1: 基础数据结构与算法

Day Topic (专题) Problems (题目) Diff Solution & Notes Key Takeaways (核心考点)
01 Array & Hash 1. Two Sum
27. Remove Element
🟢 Link 哈希表空间换时间
04 Linked List 206. Reverse Linked List
141. Linked List Cycle
🟢 Link 双指针迭代 / 递归
05 Linked List+ 21. Merge Two Sorted Lists
19. Remove Nth Node From End
20. Valid Parentheses
🟢
🟡
Link 虚拟头节点 / 栈的应用
07 Stack & Queue 232. Implement Queue using Stacks
225. Implement Stack using Queues
239. Sliding Window Maximum
🟢
🔴
Link 单调队列处理滑动窗口
08 Binary Tree 104. Max Depth of Binary Tree
226. Invert Binary Tree
101. Symmetric Tree
🟢 Link 递归思维 (DFS)
09 Tree Advanced 102. Level Order Traversal
98. Validate BST
236. Lowest Common Ancestor
🟡 Link BFS 层序遍历 / LCA 后序遍历

Phase 2: 搜索与贪心

Day Topic (专题) Problems (题目) Diff Solution & Notes Key Takeaways (核心考点)
10 Backtracking 77. Combinations
46. Permutations
17. Letter Combinations
🟡 Link 回溯模板:递归+撤销
11 Backtracking+ 78. Subsets
90. Subsets II
51. N-Queens
🟡
🔴
Link 去重逻辑 / 棋盘问题
12 Greedy Basics 455. Assign Cookies
122. Best Time to Buy Stock II
55. Jump Game
🟢
🟡
Link 局部最优推全局最优
13 Greedy Mid 45. Jump Game II
134. Gas Station
435. Non-overlapping Intervals
🟡 Link 覆盖范围 / 区间调度排序
14 Greedy Adv 56. Merge Intervals
763. Partition Labels
738. Monotone Increasing Digits
🟡 Link 区间合并 / 逆序贪心

Phase 3: 动态规划 (Dynamic Programming)

Day Topic (专题) Problems (题目) Diff Solution & Notes Key Takeaways (核心考点)
15 DP Basics 509. Fibonacci Number
70. Climbing Stairs
746. Min Cost Climbing Stairs
🟢 Link DP 五部曲 / 滚动数组优化
16 0-1 Knapsack 0-1 Knapsack Theory
416. Partition Equal Subset Sum
🟡 Link 倒序遍历 / 滚动数组
17 Knapsack Vars 1049. Last Stone Weight II
494. Target Sum
474. Ones and Zeroes
🟡 Link 求组合数公式 / 二维费用背包
18 Complete Pack 322. Coin Change
279. Perfect Squares
🟡 Link 正序遍历 / 凑满问题
19 Pack Order 518. Coin Change II
377. Combination Sum IV
139. Word Break
🟡 Link 组合(先物后包) vs 排列(先包后物)
20 House Robber 198. House Robber
213. House Robber II
337. House Robber III
🟡 Link 环形DP / 树形DP (后序)
21 Stock Series 121. Stock I (One Transaction)
122. Stock II (Unlimited)
123. Stock III (2 Transactions)
🟢
🔴
Link 状态机 DP / 状态拆分
22 Stock Adv 188. Stock IV (k Transactions)
309. Stock with Cooldown
714. Stock with Transaction Fee
🔴
🟡
Link 冷冻期状态定义 / 通用解法
23 Subsequence 300. Longest Increasing Subseq (LIS)
674. Longest Continuous Incr Subseq
1143. Longest Common Subseq (LCS)
🟡 Link 子序列(不连续) vs 子数组(连续)
24 String_DP 115.不同的子序列 (LIS)
583.两个字符串的删除操作
1035.不相交的线
🟡
🔴🟡
Link 字符串dp
25 String_DP2 72. 编辑距离 (Edit Distance)
647. 回文子串 (Palindromic Substrings)
🔴🟡 Link 编辑距离/回文字符

(持续更新中... Next: Edit Distance & Palindromes)

🧠 算法模板精华 (Templates)

这里是我总结的“杀手锏”,用于应对面试中的常见模式:

🛠️ 工具与环境 (Tools)

  • IDE: VS Code (LeetCode Extension)
  • Language: Python 3
  • Environment: WSL2 (Ubuntu) + Anaconda
  • Deploy: Github Actions (Planned)

🤝 关于作者

  • School: Sun Yat-sen University (SYSU)
  • Focus: Deep Learning, NLP, Algorithm Design
  • Status: 2027 Master Graduate (Expected)

Last Updated: 2026-01-08

About

力扣算法与数据结构题目解题源代码汇总、各题型解题思路总结!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors