作品简介

这是一本图文并茂的力扣(LeetCode)题解书,旨在让广大读者理解数据结构和算法的必备知识,掌握解决各类经典题目的基本技能,陪伴读者攻克算法难关。

《算法通关之路》通过算法题解的形式讲解了基本数据结构和算法知识,包括分治、贪心、回溯和动态规划等算法思想,二分查找、深度优先遍历和广度优先遍历、双指针、滑动窗口、位运算、并查集等解题思路和技巧,以及通用解题“套路”和解题模板等内容,引导读者了解并掌握解决算法题目的方式、方法,旨在循序渐进地提高读者应对算法题目的能力。

《算法通关之路》适合数据结构和算法知识的学习者,希望学习如何解算法题或正在刷题的计算机行业从业者,也可作为大、中专院校相关专业的辅导参考书。

本书共有5位作者,他们和另外4名审阅者组建了一个小团队,合作完成此书。团队成员大都毕业于985、211院校计算机专业,他们在解算法题、参加算法竞赛和力扣(LeetCode)周赛等过程中积攒的丰富经验都汇集于此书当中。

路志鹏

网名lucifer,软件架构师;刷题插件leetcode-cheatsheet作者;微信公众号“力扣加加”作者;擅长用通俗易懂的语言讲述算法知识,先后发表过十几万字的算法题解,在GitHub上获星数万。

俞俊

毕业于吉林大学,喜欢数学,热爱算法,闲暇时出没于力扣(LeetCode)、Codeforces;曾创业,目前主要从事前端架构方面的工作。

海凡路

硕士研究生,毕业于英国约克大学,曾就职于甲骨文软件研究开发中心,现任某金融机构软件开发项目经理。

黄乐兴

厦门大学硕士研究生在读,研究方向为人工智能;西二在线工作室第A届负责人;力扣(LeetCode)刷题量770+,周赛最高排名21。

李冰

高级研发工程师,现任某外企视频编解码组负责人,对于软硬件视频编解码流程优化有着丰富的实践经验;目前主要从事视频压缩算法、视频质量优化的研究工作。

作品目录

  • 内容简介
  • 前言
  • 作者序
  • 第1章 预备知识
  • 1.1 学习算法需要数学知识吗
  • 1.2 基础数据结构和算法
  • 1.3 复杂度分析
  • 总结
  • 第2章 数学之美
  • 2.1 两数之和
  • 2.2 三数之和
  • 2.3 四数之和
  • 2.4 四数相加II
  • 2.5 最接近的三数之和
  • 2.6 最大子序列和
  • 2.7 最大数
  • 2.8 分数到小数
  • 2.9 最大整除子集
  • 2.10 质数排列
  • 总结
  • 第3章 回文的艺术
  • 3.1 验证回文字符串Ⅱ
  • 3.2 回文链表
  • 3.3 回文数
  • 3.4 最长回文子串
  • 3.5 最长回文子序列
  • 3.6 超级回文数
  • 总结
  • 第4章 游戏之乐
  • 4.1 外观数列(报数)
  • 4.2 24点
  • 4.3 数独游戏
  • 4.4 生命游戏
  • 总结
  • 第5章 深度优先遍历和广度优先遍历
  • 5.1 深度优先遍历
  • 5.2 广度优先遍历
  • 5.3 路径和系列问题
  • 5.4 岛屿问题
  • 总结
  • 第6章 二分法
  • 6.1 二分查找
  • 6.2 寻找旋转排序数组中的最小值
  • 6.3 爱吃香蕉的珂珂
  • 6.4 x 的平方根
  • 6.5 寻找峰值
  • 6.6 分割数组的最大值
  • 总结
  • 第7章 位运算
  • 7.1 位1的个数
  • 7.2 实现加法
  • 7.3 整数替换
  • 7.4 只出现一次的数字
  • 总结
  • 第8章 设计
  • 8.1 最小栈
  • 8.2 实现 Trie(前缀树)
  • 8.3 LRU 缓存机制
  • 8.4 LFU 缓存
  • 8.5 设计跳表
  • 总结
  • 第9章 双指针
  • 9.1 头/尾指针
  • 9.2 快慢指针
  • 总结
  • 第10章 动态规划
  • 10.1 爬楼梯
  • 10.2 打家劫舍系列
  • 10.3 不同路径
  • 10.4 零钱兑换
  • 总结
  • 第11章 滑动窗口
  • 11.1 滑动窗口最大值
  • 11.2 最小覆盖子串
  • 11.3 替换后的最长重复字符
  • 11.4 字符串的排列
  • 总结
  • 第12章 博弈问题
  • 12.1 石子游戏
  • 12.2 预测赢家
  • 12.3 Nim 游戏
  • 12.4 猜数字大小II
  • 总结
  • 第13章 股票问题
  • 13.1 买卖股票的最佳时机
  • 13.2 买卖股票的最佳时机II
  • 13.3 买卖股票的最佳时机(含手续费)
  • 13.4 买卖股票的最佳时机(含冷冻期)
  • 13.5 买卖股票的最佳时机IV
  • 总结
  • 第14章 分治法
  • 14.1 合并k个排序链表
  • 14.2 数组中的第k个最大元素
  • 14.3 搜索二维矩阵II
  • 总结
  • 第15章 贪心法
  • 15.1 分发饼干
  • 15.2 跳跃游戏
  • 15.3 任务调度器
  • 15.4 分发糖果
  • 15.5 无重叠区间
  • 总结
  • 第16章 回溯法
  • 16.1 组合总和I
  • 16.2 组合总和II
  • 16.3 子集
  • 16.4 全排列
  • 16.5 解数独
  • 总结
  • 第17章 一些有趣的题目
  • 17.1 求众数II
  • 17.2 柱状图中最大的矩形
  • 17.3 一周中的第几天
  • 17.4 水壶问题
  • 17.5 可怜的小猪
  • 总结
  • 第18章 一些通用解题模板
  • 18.1 二分法
  • 18.2 回溯法
  • 18.3 并查集
  • 18.4 BFS
  • 18.5 滑动窗口
  • 18.6 数学
  • 总结
  • 第19章 融会贯通
  • 19.1 循环移位问题
  • 19.2 编辑距离
  • 19.3 第k问题
  • 总结
  • 第20章 解题技巧和面试技巧
  • 20.1 看限制条件
  • 20.2 预处理
  • 20.3 不要忽视暴力法
  • 20.4 降维与状态压缩
  • 20.5 猜测tag
  • 总结
展开全部