目录
前言
就正如【剑指offer】总集 所说,剑指offer和LeetCode的题目,往往是考验我们对其中的算法和数据结构的理解。本篇总结了Leetcode题目中面试考察率比较高的100道题目解答。
其中不乏有些题目和剑指offer是一样的,如果是,我在题目中会说明的。
刷题建议:第一次刷:5分钟想不出来解法,直接看答案。
二刷或以上:不能秒想出来任意一个解法,直接看答案;5分钟想不出最优解,直接看答案。
注:即使想到用什么解法,但是不知道怎么实现,其实相当于不会。
题目索引
我的索引结构是:
数据结构1:
|____ 任务目标 - 题目1
|____ 任务目标 - 题目2
|____ ......
|____ 特殊算法:
|____ |____ 任务目标 - 题目n
|____ |____ 任务目标 - 题目n+1
|____ |____ ......
数据结构2:
|____ 任务目标 - 题目1
|____ 任务目标 - 题目2
|____ ......
|____ 特殊算法:
|____ |____ 任务目标 - 题目n
|____ |____ 任务目标 - 题目n+1
|____ |____ ......
......
============ 数 ============
增 - 【Leetcode】470. 用 Rand7() 实现 Rand10()
分治法 :
位运算 :
贪心算法 :
动态规划 :
二分查找:
============ 数组 ============
查 - 【Leetcode】215. 数组中的第K个最大元素
动态规划 :
二分查找:
查 - 【Leetcode】34. 在排序数组中查找元素的第一个和最后一个位置
查 - 【Leetcode】153. 寻找旋转排序数组中的最小值
查 - 【Leetcode】154. 寻找旋转排序数组中的最小值 II
回溯搜索/DFS/BFS:
查 - 【Leetcode】78. 子集
排序:
位运算 :
双指针:
贪心算法 :
查 - 【Leetcode】122. 买卖股票的最佳时机 II
单调栈法:
============ 字符串 ============
增 - 【Leetcode】297. 二叉树的序列化与反序列化
改 - 【Leetcode】8. 字符串转换整数 (atoi)
改 - 【Leetcode】1047. 删除字符串中的所有相邻重复项
动态规划 :
回溯搜索 :
双指针:
贪心算法:
============ 链表 ============
双指针:
删 - 【Leetcode】19. 删除链表的倒数第 N 个结点
删 - 【Leetcode】83. 删除排序链表中的重复元素
删 - 【Leetcode】82. 删除排序链表中的重复元素 II
============ 树 ============
增 - 【Leetcode】105. 从前序与中序遍历序列构造二叉树
查 - 【Leetcode】103. 二叉树的锯齿形层序遍历
查 - 【Leetcode】129. 求根节点到叶节点数字之和
查 - 【Leetcode】863. 二叉树中所有距离为 K 的结点
查 - 【Leetcode】1302. 层数最深叶子节点的和
查 - 【Leetcode】107. 二叉树的层序遍历 II
二叉搜索树(BST):
查 - 【Leetcode】230. 二叉搜索树中第K小的元素