• 算法的时间与空间复杂度
• 链表
♦ 链表专题
• 1.Add Tow Numbers
• 2.Copy List with Random Pointer
• 3.Delete Node in a Linked List
• 4.Insertion Sort List
• 5.Sort List(重点!).
• 6.Merge Two Sort Lists
• 7.Merge k Sorted Lists
• 8.Intersection of Two Sort Lists
• 9.Linked List Cycle
• 10.Linked List Cycle II
• 11.Move Zeroes
♦ 双指针专题
• 1.Two Sum
• 2.Two Sum II - Input array is sorted
• 3.Two Sum III - Data structure design
• 4.3Sum
• 5.3Sum Closest
• 6.3Sum Smaller
• 7.4Sum
• 8.Longest SubString Without Repeating Characters(重点)
• 9.Longest SubString with At Most Two Distinct Characters(重点)
• 10.Merge Sorted Array
• 11.Move Zeroes
♦ 字符串专题
• 1.Compare Version Numbers
• 2.Count and Say
• 3.Distinct Subsequences
• 4.Edit Distance
• 5.One Edit Distance
• 6.Flip Game
• 7.Flip Game II
• 8.Interleaving String
• 9.Length of Last World
• 10.Longest Common Prefix
• 11.Reverse Words in a String
• 12.Reverse Words in a String II
♦ 数学类专题
• 1.Add Binary--大整数加法!!!
• 2.Plus One(重点!!)
• 3.Multiply Strings(重点!)--大整数乘法!
• 4.Add Digits(重点!!)
• 5.Best Meeting Point
• 6.Count Primes(重点!!!)
• 7.Divide Two Integers(重点!!!)
• 8.Reverse Intger(重点!!)
• 9.String to Integer(atoi)(重点!!)
• 10.Excel Sheet Column Number
• 11.Excel Sheet Column Title
♦ 动态规划专题
• 1.Climbing Stairs
• 2.Coin Change
• 3.House Robber
• 4.Interleaving String
• 5.Longest Increasing Subsequence
• 6.Longest Valid Paraentheses
• 7.Longest Valid Partitioning(回文分割)
• 8.Longest Valid Partitioning II
• 9.Range Sum Query-Immutable(不可改变的)
• 10.Range Sum Query 2D - Immutable
♦ 二分类查找专题
• 1.Find Minimum in Rotated Sorted Array
• 2.Find Minimum in Rotated Sorted Array II
• 3.Find Peak Element
• 4.Median of Two Sorted Arrays(重点)
• 5.Search a 2D Matrix
• 6.Search a 2D Matrix II
• 7.Search for a Range
• 8.Search in Rotated Sorted Array
• 9.Search in Rotated Sorted Array II
♦ 哈希表专题
• 1.Word Pattern.md
• 2.Valid Anagram.md
• 3.SubString with Concatenation of 0All Worlds.md
• 4.Strobogrammatic Number I(堆成数).md
• 5.Single Number.md
• 6.Single Number II.md
• 7.Single Number III.md
• 8.Palindrome Permutation(回文交换)
• 9.Maximum Size Subarray Equals k.md
• 10.Longest Substring Without Repeating Characters(重点)
♦ 回溯专题
• 1.Generate Parentheses(括号)
• 2.Gray 0Code
• 3.Letter Combinations of a Phone Number
• 4.N-Queens
• 5.N-Queens II
• 6.Palindrome Partitoning(回文分割)
• 7.Palindrome Partitoning II
• 8.Restore IP Addresses
♦ 位运算专题
• 1.Bitwise AND of Numbers Range(求一个范围内所有数字按位与的结果)
• 2.Maximun Product of Word Lengths(重点!!!)
• 3.Missing Number
• 4.Mumber of 1Bits
• 5.Repeated DNA Sequences(重点!!)
• 6.Reverse Bits(无符号整数翻转函数实现)--(重点!!!)
• 7.Single Number
• 8.Single Number II(重点!!!!)
• 9.Single Number III
- 电子书阅览:剑指offer.PDF
- 配套源码:《剑指Offer》第二版源代码
- 刷题平台:牛客平台
♦ 链表(8道)
• 面试题 6 :从尾到头打印链表
• 面试题 18_1:在O(1)时间内删除链表节点
• 面试题 18_2:删除链表中重复的节点
• 面试题 22:链表中倒数第k个结点
• 面试题 23:链表中环的入口结点
• 面试题 24:反转链表
• 面试题 25:合并两个排序的链表
• 面试题 35:复杂链表的复制
• 面试题 52:两个链表的第一个公共结点
♦ 二叉树(12道)
• 面试题 7 :重建二叉树
• 面试题 26:树的子结构
• 面试题 27:二叉树的镜像
• 面试题 32_1:不分从上往下打印二叉树
• 面试题 32_2:分行从上往下打印二叉树
• 面试题 32_3:按之字打印二叉树
• 面试题 34:二叉树中和为某一值的路径
• 面试题 55_1:二叉树的深度
• 面试题 55_2:平衡二叉树
• 面试题 8 :二叉树的下一个结点
• 面试题 28:对称的二叉树
• 面试题 37:序列化二叉树
♦ 二叉搜索树(3道)
• 面试题 33:二叉搜索树的后序遍历序列
• 面试题 36:二叉搜索树与双向链表
• 面试题 54:二叉搜索树的第k大节点
♦ 数组(11道)
• 面试题 3_1 :找出数组中重复的数字
• 面试题 3_2 :不修改数组中重复的数字
• 面试题 4 :二维数组中的查找
• 面试题 11:旋转数组的最小数字
• 面试题 21:调整数组顺序使奇数位于偶数前面
• 面试题 39:数组中出现次数超过一半的数字
• 面试题 42:连续子数组的最大和
• 面试题 45:把数组排成最小的数
• 面试题 51:数组中的逆序对
• 面试题 53_1:数字在排序数组中出现的次数
• 面试题 53_2:0~1中缺失的数字
• 面试题 53_3:数组中数值和小标相等的元素
• 面试题 56_1:数组中只出现一次的两个数字
• 面试题 56_2:数组中唯一只出现一次的数字
• 面试题 59_1:滑动窗口的最大值
• 面试题 66:构建乘积数组
♦ 字符串(8道)
• 面试题 5 :替换空格
• 面试题 19 :正则表达式匹配
• 面试题 20 :表示数值的字符串
• 面试题 38 :字符串的排列
• 面试题 48 :最长不含重复字符的子字符串
• 面试题 50_1:字符串第一个只出现一次的字符
• 面试题 50_2:字符流第一个只出现一次的字符
• 面试题 58_1:翻转单词顺序序列
• 面试题 58_2:左旋转字符串
• 面试题 46 :把数字翻译成字符串
♦ 栈(3道)
• 面试题 9_1 :用两个栈实现队列
• 面试题 9_2 :用两个队列实现栈
• 面试题 30 :包含min函数的栈
• 面试题 31 :栈的压入、弹出序列
• 面试题 59_2:队列最大值
♦ 递归(4道)
• 面试题 10_1:求裴波那契数列的第n项
• 面试题 10_2:青蛙跳台阶问题
• 面试题 10_3:变态跳台阶
♦ 回溯法(2道)
• 面试题 12:矩阵中的路径
• 面试题 13:机器人的运动范围
♦ 其他(15道)
• 面试题 15:二进制中1的个数
• 面试题 16:数值的整数次方
• 面试题 17 :打印从1到最大的n位数字
• 面试题 29:顺时针打印矩阵
• 面试题 40:最小的K个数
• 面试题 43:从1~n整数中1出现的次数
• 面试题 44:数字序列中某一位的数字
• 面试题 47:礼物的最大值
• 面试题 49:丑数
• 面试题 57_1:和为S的两个数字
• 面试题 57_2:和为S的连续正数序列
• 面试题 60:n个骰子的点数
• 面试题 61:扑克牌顺子
• 面试题 62:孩子们的游戏(圆圈中最后剩下的数)
• 面试题 63:股票最大利润
• 面试题 64:求1+2+3+…+n
• 面试题 65:不用加减乘除的加法
• 面试题 41:数据流中的中位数
- LeetCode:LeetCode_algorithms
- 力扣中文社区:力扣_算法
• 001:两数之和
• 002:两数相加
• 003:无重复字符的最长子串
• 004:寻找两个有序数组的中位数
• 005:最长回文子串
• 006:Z 字形变换
• 007:整数反转
• 008:字符串转换整数 (atoi)
• 009:回文数
• 010:正则表达式匹配
• 011:盛最多水的容器
• 012:整数转罗马数字
• 013:罗马数字转整数
• 014:最长公共前缀
• 015:三数之和
• 016:最接近的三数之和
• 017:电话号码的字母组合>
• 018:四数之和
• 019:删除链表的倒数第N个节点
• 020:有效的括号
• 021:合并两个有序链表
• 022:括号生成
• 023:合并K个排序链表
• 024:两两交换链表中的节点
• 025:K 个一组翻转链表
• 026:删除排序数组中的重复项
• 027:移除元素
• 028:实现 strStr()
• 029:两数相除
• 030:串联所有单词的子串
• 031:下一个排列
• 032:最长有效括号
• 033:搜索旋转排序数组
• 034:在排序数组中查找元素的第一个和最后一个位置
• 035:搜索插入位置
• 036:有效的数独
• 037:解数独
• 038:报数
• 039:组合总和
• 040:组合总和 II
• 041:缺失的第一个正数
• 042:接雨水
• 043:字符串相乘
• 044:通配符匹配
• 045:跳跃游戏 II
• 046:全排列
• 047:全排列 II
• 048:旋转图像
• 049:字母异位词分组
• 050:Pow(x, n)
• 051:N皇后
• 052:N皇后 II
• 053:最大子序和
• 054:螺旋矩阵
• 055:跳跃游戏
• 056:合并区间
• 057:插入区间
• 058:最后一个单词的长度
• 059:螺旋矩阵 II
• 060:第k个排列
• 061:旋转链表
• 062:不同路径
• 063:不同路径 II
• 064:最小路径和
• 065:有效数字
• 066:加一
• 067:二进制求和
• 068:文本左右对齐
• 069:x 的平方根
• 070:爬楼梯
• 071:简化路径
• 072:编辑距离
• 073:矩阵置零
• 074:搜索二维矩阵
• 075:颜色分类
• 076:最小覆盖子串
• 077:组合
• 078:子集
• 079:单词搜索
• 080:删除排序数组中的重复项 II
• 081:搜索旋转排序数组 II
• 082:删除排序链表中的重复元素 II
• 083:删除排序链表中的重复元素
• 084:柱状图中最大的矩形
• 085:最大矩形
• 086:分隔链表
• 087:扰乱字符串
• 088:合并两个有序数组
• 089:格雷编码
• 090:子集 II
• 091:解码方法
• 092:反转链表 II
• 093:复原IP地址
• 094:二叉树的中序遍历
• 095:不同的二叉搜索树 II
• 096:不同的二叉搜索树
• 097:交错字符串
• 098:验证二叉搜索树
• 099:恢复二叉搜索树
• 100:相同的树