Skip to content
剑指 Offer 50 题视频讲解
Branch: master
Clone or download
Latest commit a2e745f Apr 2, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
README.md update README.md Apr 2, 2019

README.md

剑指 Offer 50 道经典算法题视频讲解

「剑指 Offer」是何海涛写的一本算法面试书,书中精选了 50 道常见的程序员面试题,这些题目偏向中低难度,是入门上手不错的选择。另外这些题目基本上在各大 OJ 上也都有,可以非常方便地提交自己的实现进行练手。

如果刚开始练习算法题目,「剑指 Offer」是个不错的切入点。以下是 AlgoCasts 上对应这 50 道题目的讲解视频。

注意:讲解视频中的题目可能和剑指 Offer 书上的题目有些许不同,不保证 100% 一致。 另外,在我看来,有些题目练习的意义不大,已经使用删除线移除。

  1. 二维数组中的查找 - 行列递增的二维数组搜索 - leetcode 240 | lintcode 38
  2. 替换空格
  3. 从尾到头打印链表
  4. 重建二叉树 - 用前序和中序遍历序列构建二叉树 - leetcode 105 | lintcode 73
  5. 用两个栈实现队列 - 使用栈实现队列 - leetcode 232 | lintcode 40
  6. 旋转数组的最小数字 - 旋转有序数组的最小值 - leetcode 153 | lintcode 159
  7. 斐波那契数列 - 第 n 个斐波那契数 - leetcode 509 | lintcode 366
  8. 二进制中 1 的个数 - 二进制中 1 的个数 - leetcode 191 | lintcode 1332
  9. 数值的整数次方 - 数值的 n 次方 - leetcode 50 | lintcode 428
  10. 打印 1 到最大的 n 位数
  11. 在 O(1) 时间删除链表节点 - 删除链表节点 - leetcode 237 | lintcode 372
  12. 调整数组顺序使奇数位于偶数前面
  13. 链表中倒数第 k 个节点 - 移除单链表倒数第 n 个节点 - leetcode 19 | lintcode 174
  14. 反转链表 - 反转单链表 - leetcode 206 | lintcode 35
  15. 合并两个排序的链表 - 合并两个有序链表 - leetcode 21 | lintcode 165
  16. 树的子结构 - 树 t 是否等于树 s 的子树 - leetcode 572 | lintcode 1165 // 注意:视频中这道题目只是类似,但不相同,区别在于「子结构」和「子树」。
  17. 二叉树的镜像 - 翻转二叉树 - leetcode 226 | lintcode 175
  18. 顺时针打印矩阵 - 矩阵的螺旋遍历 - leetcode 54 | lintcode 374
  19. 包含 min 函数的栈 - 带有 min 函数的栈 - leetcode 155 | lintcode 12
  20. 栈的压入弹出序列 - 验证入栈出栈序列 - leetcode 946
  21. 从上往下打印二叉树 - 二叉树的层序遍历 - leetcode 102 | lintcode 69
  22. 二叉搜索树的后序遍历序列 - 验证二叉搜索树的前序遍历序列 - lintcode 1307 // 相似题
  23. 二叉树中和为某一值的路径 - 二叉树中和为给定值的路径 - leetcode 113 | lintcode 246
  24. 复杂链表的复制 - 含随机指针的链表拷贝 - leetcode 138 | lintcode 105
  25. 二叉搜索树与双向链表 - leetcode 426 | lintcode 378
  26. 字符串的排列 - 数组的全排列 - leetcode 46 | lintcode 15
  27. 数组中出现次数超过一半的数字 - 数组中超过一半的数字 - leetcode 169 | lintcode 46
  28. 最小的 k 个数 - 数组中第 K 大的元素 - leetcode 215 | lintcode 5
  29. 连续子数组的最大和 - 连续子序列的最大和 - leetcode 53 | lintcode 41
  30. 从 1 到 n 整数中 1 出现的次数 - 整数 1 到 n 中 1 出现的次数 - leetcode 233 | lintcode 1312
  31. 把数组排成最小的数
  32. 丑数 - 第 n 个丑数 - leetcode 264 | lintcode 4
  33. 第一个只出现一次的字符 - 第一个只出现一次的字符 - leetcode 387 | lintcode 209
  34. 数组中的逆序对 - 逆序对 | lintcode 532
  35. 两个链表的第一个公共节点 - 链表的相交节点 - leetcode 160 | lintcode 380
  36. 数字在排序数组中出现的次数 - 有序数组中查找数字的开始和结束下标 - leetcode 34 | lintcode 61
  37. 二叉树的深度 - 二叉树的最大深度 - leetcode 104 | lintcode 97
  38. 平衡二叉树 - 判断二叉树是否平衡 - leetcode 110 | lintcode 93
  39. 数组中只出现一次的数字 - 只出现一次的两个数字 - leetcode 260 | lintcode 84
  40. 和为 s 的两个数字 - 有序数组中求和为给定值的两个数 - leetcode 167 | lintcode 608
  41. 和为 s 的连续正数序列
  42. 翻转单词顺序 - 翻转单词顺序 - leetcode 151 | lintcode 53
  43. 左旋转字符串 - 旋转数组 - leetcode 189 | lintcode 1334
  44. n 个骰子的点数
  45. 扑克牌的顺子
  46. 圆圈中最后剩下的数字
  47. 求 1+2+..+n
  48. 不用加减乘除做加法 - 不用+/-求两数之和 - leetcode 371
  49. 把字符串转成整数 - 字符串转整数 - leetcode 8 | lintcode 54
  50. 树中两个节点的最低公共祖先 - 二叉树中节点的最近公共祖先 - leetcode 236 | lintcode 88
You can’t perform that action at this time.