30 道精选简单题,手把手带你从「会编程」变成「会算法」,每一题都解释清楚为什么这样想
你已经会写 for 循环和函数,但看到算法题脑子一片空白?这条路帮你打通从编程到算法的最后一公里。6 个里程碑,覆盖数组、哈希、双指针、栈队列、链表、二叉树、二分和入门 DP——业界公认小白必过的知识点,一个不落。每道题的「衔接语」告诉你上一题学的招式怎么在这道题里变形复用,让你真正建立体系,而不是刷完就忘。
适合:刚学完一门编程语言、没碰过算法的纯小白
一遍线性扫描 + 原地修改技巧:下标即地址、计数器追状态、慢指针占位——三个模式反复出现,是后续一切数组题的基础。
哈希表把「查找配对 / 判重 / 计频次」从 O(n²) 压到 O(1):存什么、查什么是核心,三类变体(查存在 / 查配对 / 存频次)掌握后举一反三。
有序序列两端对撞:左右指针向中间夹逼,每次移动都能排除一侧可能性;字符串两招:哈希计频次 + 按列对齐逐字符比较——一旦掌握可迁移到大量变体题。
栈的两类用法:括号配对(LIFO 弹出匹配)和单调栈(维护递增/递减序找「右边第一个更大/小值」);用栈模拟队列,练会两种结构互转的核心思路。
链表三板斧:反转(三指针迭代)/ 合并(双指针推进)/ 快慢指针找中点或判环;二叉树递归模板:选好遍历时机,让返回值传递计算结果——两类结构都靠同一套递归思维打通。
刚了解链表结构,这题用prev/cur/next三指针原地翻转,链表操作最基础手法
上题三指针操作节点,这题双指针推进两链归并,复用了合并有序序列思路
上题双指针各推一链,这题快慢指针推同一链:快2步慢1步,快到头慢在中点
上题快慢指针找中点,这题快慢判环:有环必追上,无环快指针先到null
链表学了递归,这题搬到树:每个节点交换左右子,递归自底向上完成翻转
上题递归对节点做操作,这题递归返回值:左右子树深度max+1,首次递归返回数值
上题单节点递归,这题双节点递归比对:对称=左镜像等于右,传两指针同步推进
上题双节点比对,这题递归带剩余target:到叶子判是否耗尽,树上DFS初步形态
二分把有序搜索从 O(n) 压到 O(log n),框架是「缩区间直到 lo==hi」;DP 的核心是状态转移:找到「当前状态依赖哪几个过去状态」就能解题——两道题打完 DP 心智模型的地基。