我的LeetCode算法题学习计划(每天1小时版)

我的LeetCode算法题学习计划(每天1小时版)

前言

作为一个有一定Python基础的编程爱好者,我决定系统地刷LeetCode算法题,提升自己的算法思维和编码能力。目标是通过6-8周的努力,掌握常见数据结构和算法,能够熟练解决Easy和Medium题目,并尝试一些Hard题目。由于每天只有1小时学习时间,我需要更高效的计划。这篇博客记录了我的学习安排,包括每周目标、题目推荐和建议,方便自己回顾和调整。

当前日期:2025年4月9日
预计完成时间:2025年5月底至6月初
每日学习时间:1小时


学习目标

  1. 巩固Python在算法中的应用(如列表、字典、集合)。
  2. 掌握核心数据结构(数组、链表、树、图等)和算法(排序、搜索、DP等)。
  3. 刷80-100道LeetCode题目(40% Easy, 50% Medium, 10% Hard)。
  4. 培养解题思维,提升编码效率。

学习计划(6-8周)

第1周:热身与基础巩固

  • 目标: 熟悉LeetCode环境,巩固Python技能,刷简单题目。
  • 任务:
    1. 用15分钟复习Python基础操作(列表、字典、集合)。
    2. 用45分钟刷1-2道Easy题。
  • 题目推荐:
    • #1 Two Sum(数组,哈希表)
    • #20 Valid Parentheses(栈)
    • #21 Merge Two Sorted Lists(链表)
    • #26 Remove Duplicates from Sorted Array(数组)
  • 学习笔记: 关注哈希表O(1)查找的优势。
  • 进度记录: [待完成,记录用时和思路]

第2周:数据结构入门

  • 目标: 掌握数组、链表、栈的应用。
  • 任务:
    1. 用20分钟学习数据结构基本操作。
    2. 用40分钟刷1-2道题。
  • 题目推荐:
    • Easy:
      • #206 Reverse Linked List(链表反转)
      • #155 Min Stack(栈设计)
    • Medium:
      • #3 Longest Substring Without Repeating Characters(滑动窗口)
      • #234 Palindrome Linked List(链表,快慢指针)
  • 学习笔记: 用列表模拟栈,理解滑动窗口的移动逻辑。
  • 进度记录: [待完成]

第3周:搜索与排序

  • 目标: 学习二分查找和排序的应用。
  • 任务:
    1. 用20分钟学习二分查找模板或排序算法。
    2. 用40分钟刷1-2道题。
  • 题目推荐:
    • Easy:
      • #278 First Bad Version(二分查找)
      • #704 Binary Search(二分查找)
    • Medium:
      • #33 Search in Rotated Sorted Array(二分查找)
      • #75 Sort Colors(排序)
  • 学习笔记: 二分查找注意边界条件,画图辅助。
  • 进度记录: [待完成]

第4周:树与递归

  • 目标: 掌握树的遍历和递归思维。
  • 任务:
    1. 用20分钟学习树遍历方法。
    2. 用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(层序遍历)
  • 学习笔记: 用类定义TreeNode,递归要写好base case。
  • 进度记录: [待完成]

第5周:动态规划与哈希表

  • 目标: 入门动态规划(DP),强化哈希表应用。
  • 任务:
    1. 用20分钟学习DP或哈希表概念。
    2. 用40分钟刷1-2道题。
  • 题目推荐:
    • Easy:
      • #70 Climbing Stairs(简单DP)
      • #217 Contains Duplicate(哈希表)
    • Medium:
      • #198 House Robber(DP)
      • #49 Group Anagrams(哈希表)
  • 学习笔记: DP从递归入手,哈希表优化查找。
  • 进度记录: [待完成]

第6周:图与进阶算法

  • 目标: 学习图的DFS/BFS和贪心算法。
  • 任务:
    1. 用20分钟学习图遍历或贪心思想。
    2. 用40分钟刷1-2道题。
  • 题目推荐:
    • Medium:
      • #200 Number of Islands(DFS/BFS)
      • #55 Jump Game(贪心)
    • Hard:
      • #127 Word Ladder(BFS)
  • 学习笔记: 用collections.deque实现BFS,贪心验证局部最优。
  • 进度记录: [待完成]

第7-8周:强化与挑战

  • 目标: 提升解题速度,挑战Hard题目。
  • 任务:
    1. 用20分钟复习错题或学习新思路。
    2. 用40分钟刷1-2道题。
  • 题目推荐:
    • Medium:
      • #15 3Sum(双指针)
      • #300 Longest Increasing Subsequence(DP)
    • Hard:
      • #42 Trapping Rain Water(双指针)
      • #76 Minimum Window Substring(滑动窗口)
  • 学习笔记: 记录Hard题解法来源(如题解或视频)。
  • 进度记录: [待完成]

每日安排(1小时)

  • 20分钟: 学习理论(算法/数据结构)。
  • 40分钟: 刷题(先独立思考20分钟,卡住看思路)。
  • 总结: 在笔记本或博客记录简单笔记(用时短,融入刷题后)。

刷题策略

  1. 按类型刷: 集中攻克一种类型(如链表、DP),再混合练习。
  2. 错题复盘: 建错题本,记录思路和优化方法。
  3. 循序渐进: 每周刷7-10道题,逐步增加难度。
  4. 目标: 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道,但每组题目更精简,聚焦高频类型。
  • 节奏: 更适合轻量学习,压力小但持续性强。