Skip to content

🚀 LeetCode Hot 100 Python 题解 | 独创 ASCII 动画图解逻辑 | 零基础/非科班友好 | 包含 Pythonic 代码 + 面试官视角深度解析 | 每日一题,陪你冲刺大厂算法岗!

Notifications You must be signed in to change notification settings

ZSHYC/LeetCode-Hot100-Python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 

Repository files navigation

🔥 LeetCode Hot 100 - Python Visualized

零基础算法求职教练:用 ASCII 动画图解逻辑,用 Pythonic 写法征服面试。

Python LeetCode Status License


📖 项目介绍 (Introduction)

写给所有非科班、零基础的算法学习者:

你是否经历过:

  • 看文字题解云里雾里,盯着代码发呆?
  • C++ 的指针和 Java 的啰嗦让你望而却步?
  • 背了代码过几天就忘,面试时手抖写不出来?

本项目拒绝枯燥的代码堆砌。我用 【独家三步走演示法】,将每一道 LeetCode Hot 100 高频题拆解为“动画+逻辑+代码”,助你彻底掌握算法思维。


🛠️ 核心方法论 (Methodology)

每一道题都严格遵循以下三个步骤:

1. 🎨 逻辑可视化 (Visual Logic)

我们不直接给代码,而是先用 ASCII 字符动画模拟算法流程,让你看到指针是怎么移动的,数据是怎么变化的。

示例:001. 两数之和

[ 第 2 轮循环 ]  i = 1, num = 7
我们需要: 9 - 7 = 2
回头看小本本: 有 2 吗? -> 有!(下标是 0)
动作: 找到了! -> 返回 [0, 1]

2. ⚡ Pythonic 代码 (Clean Code)

告别 C++ 式的冗长写法。我们充分利用 Python 的切片、列表推导式、zipenumerate 等特性,写出优雅、高效、面试官爱看的代码。

3. 💼 面试官视角 (Interview Tips)

  • 复杂度分析 :用大白话解释 $O(n)$$O(1)$,不再死记硬背。
  • 避坑指南 :指出新手最容易写错的边界条件(如空数组、索引越界)。

刷题进度 (Roadmap)

本项目严格遵循 LeetCode Hot 100 的经典分类,涵盖 14 个核心专题。

图例:🟢 简单 | 🟡 中等 | 🔴 困难 | ✅ 已完成

1. 哈希表 (Hashing)

状态 题号 题目 (Title) 难度 核心考点
001 两数之和 🟢 字典查表
049 字母异位词分组 🟡 排序数组作 Key
[ ] 128 最长连续序列 🟡 Set 去重与查找

2. 双指针 (Two Pointers)

状态 题号 题目 (Title) 难度 核心考点
[ ] 283 移动零 🟢 快慢指针
[ ] 011 盛最多水的容器 🟡 左右夹逼
[ ] 015 三数之和 🟡 排序+双指针

3. 滑动窗口 (Sliding Window)

状态 题号 题目 (Title) 难度 核心考点
[ ] 003 无重复字符的最长子串 🟡 窗口伸缩+哈希记录
[ ] 438 找到字符串中所有字母异位词 🟡 窗口固定+计数器

4. 子串 (Substrings)

状态 题号 题目 (Title) 难度 核心考点
[ ] 560 和为 K 的子数组 🟡 前缀和+哈希表
[ ] 239 滑动窗口最大值 🔴 单调队列
[ ] 076 最小覆盖子串 🔴 滑动窗口+频次统计

5. 普通数组 (Arrays)

状态 题号 题目 (Title) 难度 核心考点
[ ] 053 最大子数组和 🟡 贪心/动态规划
[ ] 056 合并区间 🟡 排序+合并
[ ] 189 轮转数组 🟡 三次翻转法
[ ] 238 除自身以外数组的乘积 🟡 前后缀乘积
[ ] 041 缺失的第一个正数 🔴 原地哈希

6. 矩阵 (Matrix)

状态 题号 题目 (Title) 难度 核心考点
[ ] 073 矩阵置零 🟡 标记法
[ ] 054 螺旋矩阵 🟡 模拟边界收缩
[ ] 048 旋转图像 🟡 矩阵翻转
[ ] 240 搜索二维矩阵 II 🟡 Z字形搜索

7. 链表 (Linked List)

状态 题号 题目 (Title) 难度 核心考点
[ ] 160 相交链表 🟢 双指针走A+B
[ ] 206 反转链表 🟢 迭代/递归
[ ] 234 回文链表 🟢 快慢指针+反转
[ ] 141 环形链表 🟢 快慢指针
[ ] 142 环形链表 II 🟡 数学推导
[ ] 021 合并两个有序链表 🟢 递归/迭代
[ ] 002 两数相加 🟡 模拟加法
[ ] 019 删除链表的倒数第 N 个结点 🟡 双指针间距
[ ] 024 两两交换链表中的节点 🟡 递归/虚拟头节点
[ ] 025 K 个一组翻转链表 🔴 递归/迭代
[ ] 138 随机链表的复制 🟡 哈希表/拼接拆分
[ ] 148 排序链表 🟡 归并排序
[ ] 146 LRU 缓存 🟡 哈希表+双向链表
[ ] 023 合并 K 个升序链表 🔴 优先队列/分治

8. 二叉树 (Binary Tree)

状态 题号 题目 (Title) 难度 核心考点
[ ] 094 二叉树的中序遍历 🟢 递归/栈
[ ] 104 二叉树的最大深度 🟢 DFS/BFS
[ ] 226 翻转二叉树 🟢 递归
[ ] 101 对称二叉树 🟢 递归比较
[ ] 543 二叉树的直径 🟢 DFS+全局变量
[ ] 102 二叉树的层序遍历 🟡 BFS队列
[ ] 108 将有序数组转换为二叉搜索树 🟢 递归分治
[ ] 098 验证二叉搜索树 🟡 中序遍历有序
[ ] 230 二叉搜索树中第 K 小的元素 🟡 中序遍历
[ ] 199 二叉树的右视图 🟡 BFS/DFS
[ ] 114 二叉树展开为链表 🟡 后序遍历
[ ] 105 从前序与中序遍历序列构造二叉树 🟡 递归分治
[ ] 437 路径总和 III 🟡 前缀和+DFS
[ ] 236 二叉树的最近公共祖先 🟡 递归返回值判断
[ ] 124 二叉树中的最大路径和 🔴 递归+贪心

9. 图论 (Graph)

状态 题号 题目 (Title) 难度 核心考点
[ ] 200 岛屿数量 🟡 DFS/BFS
[ ] 994 腐烂的橘子 🟡 BFS层序
[ ] 207 课程表 🟡 拓扑排序
[ ] 208 实现 Trie (前缀树) 🟡 字典树结构

10. 回溯法 (Backtracking)

状态 题号 题目 (Title) 难度 核心考点
[ ] 046 全排列 🟡 回溯模板
[ ] 078 子集 🟡 回溯/位运算
[ ] 017 电话号码的字母组合 🟡 映射+回溯
[ ] 039 组合总和 🟡 剪枝+回溯
[ ] 022 括号生成 🟡 合法性判断
[ ] 079 单词搜索 🟡 DFS+回溯
[ ] 131 分割回文串 🟡 动态规划+回溯
[ ] 051 N 皇后 🔴 经典回溯

11. 二分查找 (Binary Search)

状态 题号 题目 (Title) 难度 核心考点
[ ] 035 搜索插入位置 🟢 基础二分
[ ] 074 搜索二维矩阵 🟡 坐标转换
[ ] 034 在排序数组中查找元素的第一个和最后一个位置 🟡 两次二分
[ ] 033 搜索旋转排序数组 🟡 局部有序判断
[ ] 153 寻找旋转排序数组中的最小值 🟡 二分变体
[ ] 004 寻找两个正序数组的中位数 🔴 划分数组

12. 栈 (Stack)

状态 题号 题目 (Title) 难度 核心考点
[ ] 020 有效的括号 🟢 栈匹配
[ ] 155 最小栈 🟡 辅助栈
[ ] 394 字符串解码 🟡 双栈法
[ ] 739 每日温度 🟡 单调栈
[ ] 084 柱状图中最大的矩形 🔴 单调栈

13. 堆 (Heap)

状态 题号 题目 (Title) 难度 核心考点
[ ] 215 数组中的第K个最大元素 🟡 堆排序/快速选择
[ ] 347 前 K 个高频元素 🟡 堆/桶排序
[ ] 295 数据流的中位数 🔴 双堆

14. 贪心算法 (Greedy)

状态 题号 题目 (Title) 难度 核心考点
[ ] 121 买卖股票的最佳时机 🟢 维护最小值
[ ] 055 跳跃游戏 🟡 覆盖范围
[ ] 045 跳跃游戏 II 🟡 最远边界
[ ] 763 划分字母区间 🟡 记录最后出现位置

15. 动态规划 (Dynamic Programming)

状态 题号 题目 (Title) 难度 核心考点
[ ] 070 爬楼梯 🟢 斐波那契
[ ] 118 杨辉三角 🟢 模拟
[ ] 198 打家劫舍 🟡 状态转移
[ ] 279 完全平方数 🟡 类似零钱兑换
[ ] 322 零钱兑换 🟡 完全背包
[ ] 139 单词拆分 🟡 字符串DP
[ ] 300 最长递增子序列 🟡 O(nlogn)贪心
[ ] 152 乘积最大子数组 🟡 维护最大最小
[ ] 416 分割等和子集 🟡 01背包
[ ] 032 最长有效括号 🔴 栈/DP

16. 多维动态规划 (Multidimensional DP)

状态 题号 题目 (Title) 难度 核心考点
[ ] 062 不同路径 🟡 基础二维DP
[ ] 064 最小路径和 🟡 二维DP
[ ] 005 最长回文子串 🟡 中心扩散/DP
[ ] 1143 最长公共子序列 🟡 经典LCS
[ ] 072 编辑距离 🟡 二维DP

17. 技巧 (Tricks)

状态 题号 题目 (Title) 难度 核心考点
[ ] 136 只出现一次的数字 🟢 异或运算
[ ] 169 多数元素 🟢 摩尔投票
[ ] 075 颜色分类 🟡 双指针/三路快排
[ ] 031 下一个排列 🟡 数学规律
[ ] 287 寻找重复数 🟡 二分/快慢指针

📂 目录结构 (Structure)

.
├── 001-Two-Sum/
│   ├── solution.py      # 可直接运行的 Python 代码
│   ├── README.md        # 详细图解与面试分析
│   └── animation.gif    # (可选) 动态演示图
├── 015-3Sum/
│   ├── solution.py
│   └── README.md
├── images/              # 存放公共图片资源
└── README.md            # 项目主页

🤝 贡献与交流 (Contact)

如果你发现了解法中的错误,或者有更优雅的 Python 写法,欢迎提 Issue 或 PR!让我们一起把这个仓库打造成 Python 算法面试的标杆

About

🚀 LeetCode Hot 100 Python 题解 | 独创 ASCII 动画图解逻辑 | 零基础/非科班友好 | 包含 Pythonic 代码 + 面试官视角深度解析 | 每日一题,陪你冲刺大厂算法岗!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages