我的LeetCode算法题学习计划(每天1小时版)
我的LeetCode算法题学习计划(每天1小时版)
ytkz我的LeetCode算法题学习计划(每天1小时版)
前言
作为一个有一定Python基础的编程爱好者,我决定系统地刷LeetCode算法题,提升自己的算法思维和编码能力。目标是通过6-8周的努力,掌握常见数据结构和算法,能够熟练解决Easy和Medium题目,并尝试一些Hard题目。由于每天只有1小时学习时间,我需要更高效的计划。这篇博客记录了我的学习安排,包括每周目标、题目推荐和建议,方便自己回顾和调整。
当前日期:2025年4月9日
预计完成时间:2025年5月底至6月初
每日学习时间:1小时
学习目标
- 巩固Python在算法中的应用(如列表、字典、集合)。
- 掌握核心数据结构(数组、链表、树、图等)和算法(排序、搜索、DP等)。
- 刷80-100道LeetCode题目(40% Easy, 50% Medium, 10% Hard)。
- 培养解题思维,提升编码效率。
学习计划(6-8周)
第1周:热身与基础巩固
- 目标: 熟悉LeetCode环境,巩固Python技能,刷简单题目。
- 任务:
- 用15分钟复习Python基础操作(列表、字典、集合)。
- 用45分钟刷1-2道Easy题。
- 题目推荐:
- #1 Two Sum(数组,哈希表)
- #20 Valid Parentheses(栈)
- #21 Merge Two Sorted Lists(链表)
- #26 Remove Duplicates from Sorted Array(数组)
- 学习笔记: 关注哈希表O(1)查找的优势。
- 进度记录: [待完成,记录用时和思路]
第2周:数据结构入门
- 目标: 掌握数组、链表、栈的应用。
- 任务:
- 用20分钟学习数据结构基本操作。
- 用40分钟刷1-2道题。
- 题目推荐:
- Easy:
- #206 Reverse Linked List(链表反转)
- #155 Min Stack(栈设计)
- Medium:
- #3 Longest Substring Without Repeating Characters(滑动窗口)
- #234 Palindrome Linked List(链表,快慢指针)
- Easy:
- 学习笔记: 用列表模拟栈,理解滑动窗口的移动逻辑。
- 进度记录: [待完成]
第3周:搜索与排序
- 目标: 学习二分查找和排序的应用。
- 任务:
- 用20分钟学习二分查找模板或排序算法。
- 用40分钟刷1-2道题。
- 题目推荐:
- Easy:
- #278 First Bad Version(二分查找)
- #704 Binary Search(二分查找)
- Medium:
- #33 Search in Rotated Sorted Array(二分查找)
- #75 Sort Colors(排序)
- Easy:
- 学习笔记: 二分查找注意边界条件,画图辅助。
- 进度记录: [待完成]
第4周:树与递归
- 目标: 掌握树的遍历和递归思维。
- 任务:
- 用20分钟学习树遍历方法。
- 用40分钟刷1-2道题。
- 题目推荐:
- Easy:
- #94 Binary Tree Inorder Traversal(中序遍历)
- #104 Maximum Depth of Binary Tree(树深度)
- Medium:
- #98 Validate Binary Search Tree(二叉搜索树)
- #102 Binary Tree Level Order Traversal(层序遍历)
- Easy:
- 学习笔记: 用类定义TreeNode,递归要写好base case。
- 进度记录: [待完成]
第5周:动态规划与哈希表
- 目标: 入门动态规划(DP),强化哈希表应用。
- 任务:
- 用20分钟学习DP或哈希表概念。
- 用40分钟刷1-2道题。
- 题目推荐:
- Easy:
- #70 Climbing Stairs(简单DP)
- #217 Contains Duplicate(哈希表)
- Medium:
- #198 House Robber(DP)
- #49 Group Anagrams(哈希表)
- Easy:
- 学习笔记: DP从递归入手,哈希表优化查找。
- 进度记录: [待完成]
第6周:图与进阶算法
- 目标: 学习图的DFS/BFS和贪心算法。
- 任务:
- 用20分钟学习图遍历或贪心思想。
- 用40分钟刷1-2道题。
- 题目推荐:
- Medium:
- #200 Number of Islands(DFS/BFS)
- #55 Jump Game(贪心)
- Hard:
- #127 Word Ladder(BFS)
- Medium:
- 学习笔记: 用collections.deque实现BFS,贪心验证局部最优。
- 进度记录: [待完成]
第7-8周:强化与挑战
- 目标: 提升解题速度,挑战Hard题目。
- 任务:
- 用20分钟复习错题或学习新思路。
- 用40分钟刷1-2道题。
- 题目推荐:
- Medium:
- #15 3Sum(双指针)
- #300 Longest Increasing Subsequence(DP)
- Hard:
- #42 Trapping Rain Water(双指针)
- #76 Minimum Window Substring(滑动窗口)
- Medium:
- 学习笔记: 记录Hard题解法来源(如题解或视频)。
- 进度记录: [待完成]
每日安排(1小时)
- 20分钟: 学习理论(算法/数据结构)。
- 40分钟: 刷题(先独立思考20分钟,卡住看思路)。
- 总结: 在笔记本或博客记录简单笔记(用时短,融入刷题后)。
刷题策略
- 按类型刷: 集中攻克一种类型(如链表、DP),再混合练习。
- 错题复盘: 建错题本,记录思路和优化方法。
- 循序渐进: 每周刷7-10道题,逐步增加难度。
- 目标: 6-8周刷80-100道题(40% Easy, 50% Medium, 10% Hard)。
资源推荐
- LeetCode Explore: 按主题学习。
- NeetCode: 150道精选题讲解(YouTube)。
- 书籍: 《Python算法教程》(可选)。
后续计划
- 进度调整: 如果Medium题吃力,延长至8-10周;如果顺利,提前挑战Hard题。
- 每周小结: 更新博客,记录心得和难点。
开始宣言
从今天起,我每天投入1小时刷题,6-8周后见证自己的进步!坚持就是胜利,加油!
调整说明
- 时间分配: 每天1小时分为20分钟理论+40分钟实践,减少了总结时间(可融入刷题后快速记录)。
- 题目数量: 每周刷7-10道题,总量仍达80-100道,但每组题目更精简,聚焦高频类型。
- 节奏: 更适合轻量学习,压力小但持续性强。