代码:https://github.com/fuzh97/leetcode
1-100
| 序号 | 题目 | tag |
|---|---|---|
| 1 | 两数之和 | 数组,hash |
| 2 | 两数相加 | 链表 |
| 3 | 无重复字符的最长子串 | 字符串,hash,滑动窗口 |
| 4 | 寻找两个正序数组的中位数 | 数组 二分 |
| 5 | 最长回文子串 | 动态规划 |
| 6 | Z字型变换 | 数组 |
| 7 | 整数反转 | 数学 |
| 8 | 字符串转换整数 (atoi) | 字符串模拟 |
| 9 | 回文数 | 数学 |
| 11 | 盛最多水的容器 | 双指针 |
| 12 | 整数转罗马数字 | 字符串模拟 |
| 13 | 罗马数字转整数 | 字符串模拟 |
| 14 | 最长公共前缀 | 字符串遍历 |
| 15 | 三数之和 | 双指针 |
| 16 | 最接近的三数之和 | 双指针 |
| 17 | 电话号码的字母组合 | dfs,bfs |
| 18 | 四数之和 | 双指针 |
| 19 | 删除链表的倒数第N个节点 | 链表,双指针 |
| 20 | 有效的括号 | 栈 |
| 21 | 合并两个有序链表 | 链表 |
| 22 | 括号生成 | dfs |
| 24 | 两两交换链表中的节点 | 链表 |
| 26 | 删除排序数组中的重复项 | 数组,双指针 |
| 27 | 移除元素 | 数组,双指针 |
| 28 | 实现 strStr() | kmp |
| 31 | 下一个排列 | 数组 |
| 33 | 搜索旋转排序数组 | 二分 |
| 34 | 在排序数组中查找元素的第一个和最后一个位置 | 二分 |
| 35 | 搜索插入位置 | 二分 |
| 36 | 有效的数独 | 数组,hash |
| 38 | 外观数列 | 字符串模拟 |
| 39 | 组合总和 | dfs |
| 40 | 组合总和(2) | dfs |
| 43 | 字符串相乘 | 字符串模拟 |
| 45 | 跳跃游戏(2) | 贪心 |
| 46 | 全排列 | dfs,回溯剪枝 |
| 47 | 全排列(2) | dfs,回溯剪枝 |
| 48 | 旋转图像 | 矩阵 |
| 49 | 字母异位词分组 | hash |
| 53 | 最大子序和 | 动态规划 |
| 54 | 螺旋矩阵 | 矩阵 |
| 55 | 跳跃游戏 | 贪心 |
| 56 | 合并区间 | 排序,数组 |
| 57 | 插入区间 | 排序,数组 |
| 58 | 最后一个单词的长度 | 字符串模拟 |
| 59 | 螺旋矩阵(2) | 矩阵 |
| 61 | 旋转链表 | 链表 |
| 62 | 不同路径 | 动态规划 |
| 63 | 不同路径(2) | 动态规划 |
| 64 | 最小路径和 | 动态规划 |
| 67 | 二进制求和 | 字符串模拟 |
| 70 | 爬楼梯 | 动态规划 |
| 71 | 简化路径 | 字符流 |
| 73 | 矩阵置0 | 矩阵 |
| 74 | 搜索二维矩阵 | 数组 |
| 75 | 颜色分类 | 数组,排序 |
| 77 | 组合 | dfs,回溯 |
| 78 | 子集 | dfs,回溯 |
| 79 | 单词搜索 | dfs |
| 80 | 删除有序数组中的重复项(2) | 数组,双指针 |
| 81 | 搜索旋转排序数组(2) | 二分 |
| 86 | 分隔链表 | 链表 |
| 88 | 合并两个有序数组 | 数组,双指针 |
| 90 | 子集(2) | dfs,回溯 |
| 91 | 解码方法 | 动态规划 |
| 93 | 复原IP地址 | dfs,回溯 |
| 94 | 二叉树中序遍历 | 二叉树遍历 |
| 95 | 不同的二叉搜索树(2) | 回溯 |
| 97 | 交错字符串 | 动态规划 |
| 96 | 不同的二叉搜索树 | 二叉树,动态规划 |
| 98 | 验证二叉搜索树 | 二叉树遍历 |
101-200
| 序号 | 题目 | tag |
|---|---|---|
| 101 | 对称二叉树 | 二叉树遍历 |
| 102 | 二叉树的层序遍历 | 二叉树遍历 |
| 104 | 二叉树的最大深度 | 二叉树遍历 |
| 105 | 从前序与中序遍历序列构造二叉树 | 二叉树构造 |
| 106 | 从中序与后序遍历序列构造二叉树 | 二叉树构造 |
| 108 | 将有序数组转换为二叉搜索树 | 二叉树 |
| 110 | 平衡二叉树 | |
| 112 | 路径总和 | 二叉树遍历 |
| 113 | 路径总和(2) | 二叉树遍历 |
| 114 | 二叉树展开为链表 | 二叉树 |
| 118 | 杨辉三角 | 数组 |
| 119 | 杨辉三角(2) | 数组,数学 |
| 120 | 三角形最小路径和 | 动态规划 |
| 121 | 买卖股票的最佳时机 | 动态规划 |
| 122 | 买卖股票的最佳时机(2) | 贪心算法 |
| 123 | 买卖股票的最佳时机(3) | 动态规划 |
| 125 | 验证回文串 | 字符串模拟 |
| 128 | 最长连续序列 | hash |
| 130 | 被围绕的区域 | dfs,bfs |
| 131 | 分割回文串 | 回溯,动态规划 |
| 134 | 加油站 | 贪心 |
| 136 | 只出现一次的数字 | hash,位运算 |
| 137 | 只出现一次的数字(2) | 位运算 |
| 138 | 复制带随机指针的链表 | 链表 |
| 139 | 单词拆分 | bfs |
| 141 | 环形链表 | 链表 |
| 142 | 环形链表(ii) | 链表 |
| 144 | 二叉树的前序遍历 | 二叉树 |
| 145 | 二叉树的后序遍历 | 二叉树 |
| 150 | 波兰表达式求值 | 栈 |
| 151 | 翻转字符串里的单词 | 双指针 |
| 152 | 最大乘积子数组 | 动态规划 |
| 153 | 寻找旋转排序数组中的最小值 | 二分 |
| 154 | 寻找旋转排序数组中的最小值(2) | 二分 |
| 155 | 最小栈 | 栈 |
| 160 | 相交链表 | 链表 |
| 162 | 寻找峰值 | 二分 |
| 165 | 比较版本号 | 双指针 |
| 167 | 两数之和(2) | 双指针 |
| 168 | Excel表列名称 | 进制转换 |
| 169 | 多数元素 | hash,摩尔投票 |
| 171 | Excel 表列序号 | 进制转换 |
| 179 | 最大数 | 排序 贪心 |
| 187 | 重复的DNA序列 | hash,滑动窗口 |
| 189 | 旋转数组 | 数组 |
| 198 | 打家劫舍 | 动态规划 |
| 200 | 岛屿数量 | dfs |
201-300
| 序号 | 题目 | tag |
|---|---|---|
| 204 | 计算质数 | 数学 |
| 205 | 同构字符串 | hash |
| 206 | 反转链表 | 链表 |
| 208 | 实现前缀树 | 字典树 |
| 209 | 长度最小子数组 | 数组,滑动窗口 |
| 211 | 添加与搜索单词 | 字典树 |
| 213 | 打家劫舍(2) | 动态规划 |
| 215 | 数组中第k个最大元素 | 排序,堆,优先队列 |
| 216 | 组合总和(3) | dfs |
| 217 | 存在重复元素 | hash |
| 219 | 存在重复元素(2) | hash |
| 220 | 存在重复元素(3) | 数组,桶 |
| 221 | 最大正方形 | 动态规划 |
| 224 | 基本计算器 | 字符串模拟,栈 |
| 226 | 翻转二叉树 | 二叉树,bfs,dfs |
| 227 | 基本计算器(2) | 栈,字符串模拟 |
| 228 | 汇总区间 | 数组 |
| 229 | 求众数 | 摩尔投票 |
| 234 | 回文链表 | 链表 |
| 235 | 二叉搜索树的最近公共祖先 | 二叉树 |
| 236 | 二叉树的最近公共祖先 | 二叉树 |
| 238 | 除自身以外的数组的乘积 | 数组 |
| 240 | 搜索二维矩阵 II | 数组 |
| 241 | 为运算表达式设计优先级 | 分治 |
| 242 | 有效字母的异位词 | hash |
| 257 | 二叉树的所有路径 | dfs |
| 260 | 只出现一次的数字(3) | 位运算 |
| 268 | 丢失的数字 | 位运算 |
| 274 | H 指数 | 计数排序 |
| 275 | H 指数(2) | 二分 |
| 279 | 完全平方数 | 动态规划 |
| 283 | 移动零 | 快慢指针 |
| 284 | 顶端迭代器 | 链表 |
| 287 | 寻找重复数 | 二分 |
| 289 | 生命游戏 | 矩阵 |
| 290 | 单词规律 | hash |
| 295 | 数据流的中位数 | 堆排序 |
| 299 | 猜数字游戏 | hash |
| 300 | 最长上升子序列 | 动态规划 |
| 序号 | 题目 | tag |
|---|---|---|
| 322 | 零钱兑换 | dfs,贪心,动态规划 |
| 338 | 比特数计位 | 数组,位运算 |
| 344 | 反转字符串 | 双指针 |
| 347 | 前k个高频元素 | 堆,优先队列 |
| 394 | 字符串解码 | 字符串,栈 |
| 399 | 除法求值 | dfs |
| 405 | 数字转换为十六进制数 | 进制转换 |
| 406 | 根据身高重建队列 | 数组 |
| 415 | 字符串加法 | 字符串模拟 |
| 416 | 分割等和子集 | 动态规划 |
| 437 | 路径总和 | dfs |
| 438 | 找到字符串中所有字母异位词 | 滑动窗口 |
| 448 | 找到所有数组中消失的数字 | 数组 |
| 453 | 最小操作次数使数组元素相等 | 数学 |
| 461 | 汉明距离 | 位运算 |
| 476 | 数字的补数 | 位运算 |
| 494 | 目标和 | dfs |
| 509 | 斐波那契数 | 数组 |
| 538 | 把二叉搜索树转换为累加树 | 二叉树遍历 |
| 541 | 反转字符串(2) | 双指针 |
| 543 | 二叉树的直径 | 二叉树遍历 |
| 547 | 省份数量 | bfs,dfs,并查集 |
| 560 | 和为k的子数组 | 前缀和 哈希 |
| 575 | 分糖果 | 贪心 |
| 830 | 较大分组的位置 | 数组 |
| 852 | 山脉数组的峰顶索引 | 二分 |
| 930 | 和相同的二元子数组 | 前缀和,hash |
| 1038 | 把二叉搜索树转换为累加树 | 二叉树遍历 |
| 1009 | 十进制整数的反码 | 位运算 |
| 1202 | 交换字符串中的元素 | 并查集 |
| 2136 | 面试题 17.10. 主要元素 | 数组,选举算法 |
剑指offer:
| 序号 | 题目 | tag |
|---|---|---|
| 3 | 数组中重复的数字 | 数组 |
| 4 | 二维数组中的查找 | 数组 |
| 5 | 替换空格 | 字符串 |
| 6 | 从尾到头打印链表 | 栈,链表 |
| 9 | 用两个栈实现队列 | 栈,队列 |
| 11 | 旋转数组的最小数字 | 二分 |
| 12 | 矩阵中的路径 | 回溯,dfs |
| 13 | 机器人的运动范围 | 回溯 |
| 18 | 删除链表的节点 | 链表 |
| 21 | 调整数组顺序使奇数位于偶数前面 | 数组,双指针 |
| 22 | 链表中倒数第k个节点 | 链表 |
| 24 | 反转链表 | 链表 |
| 25 | 合并两个排序的链表 | 链表 |
| 26 | 树的子结构 | 二叉树 |
| 27 | 二叉树的镜像 | 二叉树,遍历 |
| 28 | 对称的二叉树 | 二叉树 |
| 30 | 包含min函数的栈 | 栈 |
| 32 - I | 从上到下打印二叉树 | 二叉树 |
| 32 - II | 从上到下打印二叉树 II | 二叉树 |
| 32 - III | 从上到下打印二叉树 III | 二叉树 |
| 34 | 二叉树中和为某一值的路径 | 二叉树 |
| 35 | 复杂链表的复制 | 链表 |
| 36 | 二叉搜索树与双向链表 | 二叉树,链表 |
| 40 | 最小的 k 个数 | 排序 |
| 41 | 数据流中的中位数 | 排序 |
| 42 | 连续子数组的最大和 | 动态规划 |
| 45 | 把数组排成最小的数 | 排序 |
| 46 | 把数字翻译成字符串 | 动态规划 |
| 47 | 礼物的最大价值 | 动态规划 |
| 48 | 最长不含重复字符的子字符串 | 滑动窗口 |
| 50 | 第一个只出现一次的字符 | 二分 |
| 52 | 两个链表的第一个公共节点 | 链表 |
| 53 - I | 在排序数组中查找数字 I | 二分 |
| 53 - II | 0~n-1中缺失的数字 | 二分 |
| 54 | 二叉搜索树的第k大节点 | 二叉树 |
| 55 - I | 二叉树的深度 | 二叉树 |
| 55 - II | 平衡二叉树 | 二叉树 |
| 57 | 和为s的两个数字 | 数组,双指针 |
| 58 - I | 翻转单词顺序 | 字符串 |
| 58 - II | 左旋转字符串 | 字符串 |
| 61 | 扑克牌中的顺子 | 排序 |
| 63 | 股票的最大利润 | 动态规划 |
| 64 | 求1+2+…+n | 递归 |
| 68 - I | 二叉搜索树的最近公共祖先 | 二叉树 |
| 68 - II | 二叉树的最近公共祖先 | 二叉树 |
剑指 Offer II
| 序号 | 题目 | tag |
|---|---|---|
| 69 | 山峰数组的顶部 | 二分 |
版权声明:本文为weixin_44699689原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。