algorithm primer - 算法基础、Leetcode编程、剑指offer
No | Problem | Solution | Difficulty | Tag |
---|---|---|---|---|
20 | 有效的括号 Valid Parentheses | Java | Easy | |
94 | 二叉树的中序遍历 Binary Tree Inorder | Java | Medium | |
155 | 最小栈 Min Stack | Java | Easy | |
394 | 字符串编码 Decode String | Java | Medium |
No | Problem | Solution | Difficulty | Tag |
---|---|---|---|---|
2 | 两数相加 Add Two Numbers | Java | Medium | |
19 | 删除链表倒数第N个节点 Remove Nth Node From End of List | Java | Medium | |
21 | 合并两个有序链表 Merge Two Sorted Lists | Java | Easy | |
141 | 判断链表是是否存在环 Linked List Cycle | Java | Easy | |
142 | 环形链表II Linked List Cycle II | Java | Medium | |
148 | 排序链表 Sort List | Java | Medium | |
160 | 相交链表 Intersection of Two Linked Lists | Java | Easy | |
206 | 反转链表 Reverse Linked List | Java | Easy | |
234 | 回文链表 Palindrome Linked List | Java | Easy |
No | Problem | Solution | Difficulty | Tag |
---|---|---|---|---|
105 | Construct Binary Tree from Preorder and Inorder Traversal | Java | Medium | |
121 | Best Time to Buy and Sell Stock | Java | Easy | |
152 | Maximum Product Subarray | Java | Medium | |
169 | Majority Element | Java | Easy | |
238 | Product of Array Except Self | Java | Medium | |
283 | Move Zeroes | Java | Easy | |
287 | Find the Duplicate Number | Java | Medium | |
448 | Find All Numbers Disappeared in an Array | Java | Easy | |
560 | Subarray Sum Equals K | Java | Medium | |
581 | Shortest Unsorted Continuous Subarray | Java | Easy |
No | Problem | Solution | Difficulty | Tag |
---|---|---|---|---|
94 | 二叉树的中序遍历 Binary Tree Inorder | Java | Medium | |
101 | 对称二叉树 Symmetric Tree | Java | Easy | |
102 | 二叉树的层次遍历 Binary Tree Level Order Traversal | Java | Medium | |
104 | 二叉树的最大深度 Maximum Depth of Binary Tree | Java | Easy | |
105 | 从前序与中序遍历序列构造二叉树 Construct Binary Tree from Preorder and Inorder Traversal | Java | Medium | |
114 | 二叉树展开为链表 Flatten Binary Tree to Linked List | Java | Medium | |
124 | 二叉树中的最大路径和 Binary Tree Maximum Path Sum | Java | Hard | |
226 | 翻转二叉树 Invert Binary Tree | Java | Easy | |
236 | 二叉树的最近公共祖先 Lowest Common Ancestor of a Binary Tree | Java | Medium | |
257 | 二叉树路径 Binary Tree Paths | Java | Easy | |
337 | 打家劫舍 III House Robber III | Java | Medium | |
437 | 路径总和 III Path Sum III | Java | Easy | |
543 | 二叉树的直径 Diameter of Binary Tree | Java | Easy | |
617 | 合并二叉树 Merge Two Binary Trees | Java | Easy |
No | Problem | Solution | Difficulty | Tag |
---|---|---|---|---|
96 | 不同的二叉搜索树 Unique Binary Search Trees | Java | Medium | |
98 | 验证二叉搜索树 Validate Binary Search Tree | Java | Medium | |
538 | 把二叉搜索树转换为累加树 Convert BST to Greater Tree | Java | Easy |
No | Problem | Solution | Difficulty | Tag |
---|---|---|---|---|
208 | 实现 Trie (前缀树) Implement Trie (Prefix Tree) | Java | Medium |
No | Problem | Solution | Difficulty | Tag |
---|---|---|---|---|
1 | 两数之和 Two Sum | Java | Easy | |
3 | 无重复字符的最长子串 Longest Substring Without Repeating Characters | Java | Medium | |
49 | 字母异位词分组 Group Anagrams | Java | Medium | |
94 | 二叉树的中序遍历 Binary Tree Inorder | Java | Medium | |
136 | 只出现一次的数字 Single Number | Java | Easy | |
347 | 前 K 个高频元素 Top K Frequent Elements | Java | Medium | |
438 | 找到字符串中所有字母异位词 Find All Anagrams in a String | Java | Medium | |
560 | 和为K的子数组 Subarray Sum Equals K | Java | Medium |
No | Problem | Solution | Difficulty | Tag |
---|---|---|---|---|
3 | 无重复字符的最长子串 Longest Substring Without Repeating Characters | Java | Medium | |
5 | 最长回文子串 Longest Palindromic Substring | Java | Medium | |
17 | 电话号码的字母组合 Letter Combinations of a Phone Number | Java | Medium | |
20 | 有效的括号 Valid Parentheses | Java | Easy | |
22 | 括号生成 Generate Parentheses | Java | Medium | |
49 | 字母异位词分组 Group Anagrams | Java | Medium | |
647 | 回文子串 Palindromic Substrings | Java | Medium |
No | Problem | Solution | Difficulty | Tag |
---|---|---|---|---|
215 | 数组中的第K个最大元素 Kth Largest Element in an Array | Java | Medium | |
347 | 前 K 个高频元素 Top K Frequent Elements | Java | Medium |
No | Problem | Solution | Difficulty | Tag |
---|---|---|---|---|
56 | 合并区间 Merge Intervals | Java | Medium | |
75 | 颜色分类 Sort Colors | Java | Medium | |
148 | 排序链表 Sort List | Java | Medium |
No | Problem | Solution | Difficulty | Tag |
---|---|---|---|---|
207 | 课程表 Course Schedule | Java | Medium |
No | Problem | Solution | Difficulty | Tag |
---|---|---|---|---|
34 | 在排序数组中查找元素的第一个和最后一个位置 Find First and Last Position of Element in Sorted Array | Java | Medium | |
240 | 搜索二维矩阵 II Search a 2D Matrix II | Java | Medium | |
287 | 寻找重复数 Find the Duplicate Number | Java | Medium | |
300 | 最长上升子序列 Longest Increasing Subsequence | Java | Medium |
No | Problem | Solution | Difficulty | Tag |
---|---|---|---|---|
3 | 无重复字符的最长子串 Longest Substring Without Repeating Characters | Java | Medium | |
11 | 盛最多水的容器 Container With Most Water | Java | Medium | |
15 | 三数之和 3Sum | Java | Medium | |
16 | 最接近的三数之和 3Sum Closest | Java | Medium | |
19 | 删除链表的倒数第N个节点 Remove Nth Node From End of List | Java | Medium | |
75 | 颜色分类 Sort Colors | Java | Medium | |
141 | 环形链表 Linked List Cycle | Java | Easy | |
142 | 环形链表 II Linked List Cycle II | Java | Medium | |
167 | 两数之和 II - 输入有序数组 Two Sum II - Input array is sorted | Java | Easy | |
234 | 回文链表 Palindrome Linked List | Java | Easy | |
283 | 移动零 Move Zeroes | Java | Easy | |
287 | 寻找重复数 Find the Duplicate Number | Java | Medium |
No | Problem | Solution | Difficulty | Tag |
---|---|---|---|---|
338 | 比特位计数 Counting Bits | Java | Medium | |
416 | 分割等和子集 Partition Equal Subset Sum | Java | Medium | |
494 | 目标和 Target Sum | Java | Medium | |
647 | 回文子串 Palindromic Substrings | Java | Medium |
No | Problem | Solution | Difficulty | Tag |
---|---|---|---|---|
55 | 跳跃游戏 Jump Game | Java | Medium | |
406 | 根据身高重建队列 Queue Reconstruction by Height | Java | Medium |
No | Problem | Solution | Difficulty | Tag |
---|---|---|---|---|
53 | 最大子序和 Maximum Subarray | Java | Easy | |
169 | 多数元素 Majority Element | Java | Easy | |
215 | 数组中的第K个最大元素 Kth Largest Element in an Array | Java | Medium | |
240 | Search a 2D Matrix II | Java | Medium |
No | Problem | Solution | Difficulty | Tag |
---|---|---|---|---|
17 | 电话号码的字母组合 Letter Combinations of a Phone Number | Java | Medium | |
22 | 括号生成 Generate Parentheses | Java | Medium | |
39 | 组合总和 Combination Sum | Java | Medium | |
46 | 全排列 Permutations | Java | Medium | |
78 | 子集 Subsets | Java | Medium | |
79 | 单词搜索 Word Search | Java | Medium |
No | Problem | Solution | Difficulty | Tag |
---|---|---|---|---|
78 | 子集 Subsets | Java | Medium | |
136 | 只出现一次的数字 Single Number | Java | Easy | |
169 | 多数元素 Majority Element | Java | Easy | |
338 | 比特位计数 Counting Bits | Java | Medium | |
461 | 汉明距离 Hamming Distance | Java | Easy |
No | Problem | Solution | Difficulty | Tag |
---|---|---|---|---|
3 | 无重复字符的最长子串 Longest Substring Without Repeating Characters | Java | Medium |
No | Problem | Solution | Difficulty | Tag |
---|---|---|---|---|
1 | 两数之和 Two Sum | Java | Easy | |
2 | Add Two Numbers | Java | Medium | |
3 | 无重复字符的最长子串 Longest Substring Without Repeating Characters | Java | Medium | |
5 | 最长回文子串 Longest Palindromic Substring | Java | Medium | |
11 | 盛最多水的容器 Container With Most Water | Java | Medium | |
15 | 三数之和 3Sum | Java | Medium | |
16 | 最接近的三数之和 3Sum Closest | Java | Medium | |
17 | 电话号码的字母组合 Letter Combinations of a Phone Number | Java | Medium | |
19 | 删除链表的倒数第N个节点 Remove Nth Node From End of List | Java | Medium | |
20 | 有效的括号 Valid Parentheses | Java | Easy | |
21 | Merge Two Sorted Lists | Java | Easy | |
22 | 括号生成 Generate Parentheses | Java | Medium | |
31 | Next Permutation | Java | Medium | |
34 | 在排序数组中查找元素的第一个和最后一个位置 Find First and Last Position of Element in Sorted Array | Java | Medium | |
39 | 组合总和 Combination Sum | Java | Medium | |
46 | 全排列 Permutations | Java | Medium | |
48 | Rotate Image | Java | Medium | |
49 | 字母异位词分组 Group Anagrams | Java | Medium | |
53 | 最大子序和 Maximum Subarray | Java | Easy | |
55 | 跳跃游戏 Jump Game | Java | Medium | |
56 | 合并区间 Merge Intervals | Java | Medium | |
62 | Unique Paths | Java | Medium | |
62 | Minimum Path Sum | Java | Medium | |
70 | Climbing Stairs | Java | Easy | |
75 | 颜色分类 Sort Colors | Java | Medium | |
78 | 子集 Subsets | Java | Medium | |
79 | 单词搜索 Word Search | Java | Medium | |
94 | 二叉树的中序遍历 Binary Tree Inorder | Java | Medium | |
96 | 不同的二叉搜索树 Unique Binary Search Trees | Java | Medium | |
98 | 验证二叉搜索树 Validate Binary Search Tree | Java | Medium | |
101 | 对称二叉树 Symmetric Tree | Java | Easy | |
102 | 二叉树的层次遍历 Binary Tree Level Order Traversal | Java | Medium | |
104 | 二叉树的最大深度 Maximum Depth of Binary Tree | Java | Easy | |
105 | 从前序与中序遍历序列构造二叉树 Construct Binary Tree from Preorder and Inorder Traversal | Java | Medium | |
114 | 二叉树展开为链表 Flatten Binary Tree to Linked List | Java | Medium | |
121 | Best Time to Buy and Sell Stock | Java | Easy | |
124 | 二叉树中的最大路径和 Binary Tree Maximum Path Sum | Java | Hard | |
136 | 只出现一次的数字 Single Number | Java | Easy | |
139 | Word Break | Java | Medium | |
141 | 环形链表 Linked List Cycle | Java | Easy | |
142 | 环形链表 II Linked List Cycle II | Java | Medium | |
146 | LRU Cache | Java | Medium | |
148 | 排序链表 Sort List | Java | Medium | |
152 | Maximum Product Subarray | Java | Medium | |
155 | Min Stack | Java | Easy | |
160 | Intersection of Two Linked Lists | Java | Easy | |
169 | 多数元素 Majority Element | Java | Easy | |
198 | House Robber | Java | Easy | |
200 | Number of Islands | Java | Medium | |
206 | Reverse Linked List | Java | Easy | |
207 | 课程表 Course Schedule | Java | Medium | |
208 | 实现 Trie (前缀树) Implement Trie (Prefix Tree) | Java | Medium | |
215 | 数组中的第K个最大元素 Kth Largest Element in an Array | Java | Medium | |
221 | Maximal Square | Java | Medium | |
226 | 翻转二叉树 Invert Binary Tree | Java | Easy | |
234 | 回文链表 Palindrome Linked List | Java | Easy | |
236 | 二叉树的最近公共祖先 Lowest Common Ancestor of a Binary Tree | Java | Medium | |
238 | Product of Array Except Self | Java | Medium | |
240 | 搜索二维矩阵 II Search a 2D Matrix II | Java | Medium | |
253 | Meeting Rooms II | Java | Medium | |
279 | Perfect Squares | Java | Medium | |
283 | 移动零 Move Zeroes | Java | Easy | |
287 | 寻找重复数 Find the Duplicate Number | Java | Medium | |
300 | 最长上升子序列 Longest Increasing Subsequence | Java | Medium | |
309 | Best Time to Buy and Sell Stock with Cooldown | Java | Medium | |
322 | Coin Change | Java | Medium | |
337 | 打家劫舍 III House Robber III | Java | Medium | |
338 | 比特位计数 Counting Bits | Java | Medium | |
347 | 前 K 个高频元素 Top K Frequent Elements | Java | Medium | |
394 | Decode String | Java | Medium | |
399 | Evaluate Division | Java | Medium | |
406 | 根据身高重建队列 Queue Reconstruction by Height | Java | Medium | |
416 | 分割等和子集 Partition Equal Subset Sum | Java | Medium | |
437 | 路径总和 III Path Sum III | Java | Easy | |
438 | 找到字符串中所有字母异位词 Find All Anagrams in a String | Java | Medium | |
448 | Find All Numbers Disappeared in an Array | Java | Easy | |
461 | 汉明距离 Hamming Distance | Java | Easy | |
494 | 目标和 Target Sum | Java | Medium | |
538 | 把二叉搜索树转换为累加树 Convert BST to Greater Tree | Java | Easy | |
543 | 二叉树的直径 Diameter of Binary Tree | Java | Easy | |
560 | 和为K的子数组 Subarray Sum Equals K | Java | Medium | |
581 | Shortest Unsorted Continuous Subarray | Java | Easy | |
617 | 合并二叉树 Merge Two Binary Trees | Java | Easy | |
647 | 回文子串 Palindromic Substrings | Java | Medium |
Note:
着重体的问题表示未开放。
No | Problem | Solution | Difficulty | Tag |
---|---|---|---|---|
167 | 两数之和 II - 输入有序数组 Two Sum II - Input array is sorted | Java | Easy | |
257 | 二叉树路径 Binary Tree Paths | Java | Easy |
No | Leetcode | Problem & Solution | Tag |
---|---|---|---|
003 | 数组中重复的数字 | 数组 | |
004 | 二维数组中的查找 | 数组 | |
011 | 旋转数组中的最小数字 | 数组与二分查找 | |
017 | 打印从 1 到最大的 n 位数 | 数组、大整数 | |
021 | 调整数组顺序使奇数位于偶数前面 | 数组、快排 | |
039 | 数组中出现次数超过一半的数字 | 数组、多数投票问题 | |
040 | 最小的 k 个数 | 数组、topK、大根堆 | |
041 | 数据流中的中位数 | 数组、大根堆、小根堆 | |
041-2 | 字符流中第一个不重复的字符 | 字符的数组索引、队列 | |
050 | 第一个只出现一次的字符 | 数组、数组索引、哈希表、比特位集 | |
053 | 数字在排序数组中出现的次数 | 数组、折半查找 | |
056 | 数组中只出现一次的数字 | 位运算、数组 | |
057 | 有序数组中查找和为s的两个数 | 数组、双指针 | |
058 | 翻转单词顺序 | 数组、字符串 | |
058-2 | 左旋转字符串 | 数组、字符串 | |
061 | 扑克牌的顺子 | 数组 | |
065 | 构建乘积数组 | 数组 |
No | Problem & Solution | Tag |
---|---|---|
006 | 从尾到头打印链表 | 链表 |
018-1 | 在 O(1) 时间删除链表结点 | 链表 |
018-2 | 删除链表中重复的结点 | 链表 |
022 | 链表中倒数第 k 个节点 | 链表、双指针 |
023 | 链表中环的入口结点 | 链表、双指针 |
024 | 反转链表 | 链表、递归 |
035 | 复杂链表的复制 | 链表 |
No | Leetcode | Problem & Solution | Tag |
---|---|---|---|
007 | 根据前序和中序遍历结果重建二叉树 | 二叉树 | |
008 | 查找二叉树指定节点的中序遍历的下一个节点 | 二叉树 | |
026 | 树的子结构 | 二叉树、递归 | |
027 | 二叉树的镜像 | 二叉树、递归 | |
028 | 对称的二叉树 | 二叉树、递归 | |
032 | 从上到下打印二叉树 | 二叉树、层次遍历、队列 | |
032-2 | 把二叉树打印成多行 | 二叉树、层次遍历、队列 | |
032-3 | 按之字形顺序打印二叉树 | 二叉树、层次遍历、队列、栈 | |
033 | 二叉搜索树的后序遍历序列 | 二叉搜索树、后序遍历 | |
034 | 二叉树中和为某一值的路径 | 二叉树路径、递归 | |
036 | 二叉搜索树与双向链表 | 二叉搜索树、双向链表 | |
037 | 序列化二叉树 | 二叉树、递归 | |
054 | 二叉搜索树的第k个结点 | 二叉搜索树、中序遍历 | |
055 | 二叉树的深度 | 二叉树、二叉树的遍历 | |
055-2 | 平衡二叉树 | 二叉树、二叉树的遍历 | |
068 | 树中两个节点的最低公共祖先节点 | 二叉树、递归、树的路径 |
No | Leetcode | Problem & Solution | Tag |
---|---|---|---|
009 | 用两个栈实现队列 | 栈与队列 | |
059 | 滑动窗口的最大值 | 双端队列、大根堆 |
No | Problem & Solution | Tag |
---|---|---|
005 | 替换字符串中的空格 | 字符串 |
038 | 字符串的排列 | 字符串、递归、回溯 |
044 | 数字序列中的某一位数字 | 字符串 |
045 | 把数组排成最小的数 | 字符串、数组 |
No | Leetcode | Problem & Solution | Tag |
---|---|---|---|
015 | 二进制中1的个数 | 位运算 | |
056 | 数组中只出现一次的数字 | 位运算、数组 |
No | Leetcode | Problem & Solution | Tag |
---|---|---|---|
010-1 | 斐波那契数列 | 递归与动态规划 | |
010-2 | 矩形覆盖 | 递归与动态规划 | |
010-3 | 跳台阶 | 递归与动态规划 | |
010-4 | 变态跳台阶 | 递归与动态规划 | |
012 | 矩阵中的路径 | 递归、回溯、DFS | |
013 | 机器人的运动范围 | 递归、回溯、DFS | |
016 | 数值的整数次方 | 递归 | |
049 | 第 N 个丑数 | 动态规划 | |
062 | 圆圈中最后剩下的数字 | 递归 | |
063 | 股票的最大利润 | 动态规划、贪心 | |
064 | 求前N个正整数之和 | 递归 |
No | Leetcode | Problem & Solution | Tag |
---|---|---|---|
003 | 数组中重复的数字 | 数组 | |
004 | 二维数组中的查找 | 数组 | |
005 | 替换字符串中的空格 | 字符串 | |
006 | 从尾到头打印链表 | 链表 | |
007 | 根据前序和中序遍历结果重建二叉树 | 二叉树 | |
008 | 查找二叉树指定节点的中序遍历的下一个节点 | 二叉树 | |
009 | 用两个栈实现队列 | 栈与队列 | |
010-1 | 斐波那契数列 | 递归与动态规划 | |
010-2 | 矩形覆盖 | 递归与动态规划 | |
010-3 | 跳台阶 | 递归与动态规划 | |
010-4 | 变态跳台阶 | 递归与动态规划 | |
011 | 旋转数组中的最小数字 | 数组与二分查找 | |
012 | 矩阵中的路径 | 递归、回溯、DFS | |
013 | 机器人的运动范围 | 递归、回溯、DFS | |
014 | 剪绳子使各段长度的乘积最大 | 贪心、动态规划 | |
015 | 二进制中1的个数 | 位运算 | |
016 | 数值的整数次方 | 递归、折半 | |
017 | 打印从 1 到最大的 n 位数 | 数组、大整数 | |
018-1 | 在 O(1) 时间删除链表结点 | 链表 | |
018-2 | 删除链表中重复的结点 | 链表 | |
019 | 正则表达式 | 动态规划 | |
020 | 表示数值的字符串 | 字符串、正则表达式 | |
021 | 调整数组顺序使奇数位于偶数前面 | 数组、快排 | |
022 | 链表中倒数第 k 个节点 | 链表、双指针 | |
023 | 链表中环的入口结点 | 链表、双指针 | |
024 | 反转链表 | 链表、递归 | |
026 | 树的子结构 | 二叉树、递归 | |
027 | 二叉树的镜像 | 二叉树、递归 | |
028 | 对称的二叉树 | 二叉树、递归 | |
029 | 顺时针打印矩阵 | 数组 | |
030 | 包含 min 函数的栈 | 栈 | |
031 | 栈的压入、弹出序列 | 栈 | |
032 | 从上到下打印二叉树 | 二叉树、层次遍历、队列 | |
032-2 | 把二叉树打印成多行 | 二叉树、层次遍历、队列 | |
032-3 | 按之字形顺序打印二叉树 | 二叉树、层次遍历、队列、栈 | |
033 | 二叉搜索树的后序遍历序列 | 二叉搜索树、后序遍历 | |
034 | 二叉树中和为某一值的路径 | 二叉树路径、递归 | |
035 | 复杂链表的复制 | 链表 | |
036 | 二叉搜索树与双向链表 | 二叉搜索树、双向链表 | |
037 | 序列化二叉树 | 二叉树、递归 | |
038 | 字符串的排列 | 字符串、递归、回溯 | |
039 | 数组中出现次数超过一半的数字 | 数组、多数投票问题 | |
040 | 最小的 k 个数 | 数组、topK、大根堆 | |
041 | 数据流中的中位数 | 数组、大根堆、小根堆 | |
041-2 | 字符流中第一个不重复的字符 | 字符的数组索引、队列 | |
042 | 连续子数组的最大和 | 数组、动态规划 | |
043 | 从 1 到 n 整数中 1 出现的次数 | ||
044 | 数字序列中的某一位数字 | 字符串 | |
045 | 把数组排成最小的数 | 字符串、数组 | |
046 | 把数字翻译成字符串 | 动态规划 | |
047 | 礼物的最大价值 | 动态规划 | |
048 | 最长不含重复字符的子字符串 | ||
049 | 第 N 个丑数 | 动态规划 | |
050 | 第一个只出现一次的字符 | 数组、数组索引、哈希表、比特位集 | |
051 | 数组中的逆序对 | 数组、排序 | |
052 | 两个链表的第一个公共结点 | 链表、双指针 | |
053 | 数字在排序数组中出现的次数 | 数组、折半查找 | |
054 | 二叉搜索树的第k个结点 | 二叉搜索树、中序遍历 | |
055 | 二叉树的深度 | 二叉树、二叉树的遍历 | |
055-2 | 平衡二叉树 | 二叉树、二叉树的遍历 | |
056 | 数组中只出现一次的数字 | 位运算、数组 | |
057 | 有序数组中查找和为s的两个数 | 数组、双指针 | |
057-2 | 为 s 的连续正数序列 | 数组、双指针 | |
058 | 翻转单词顺序 | 数组、字符串 | |
058-2 | 左旋转字符串 | 数组、字符串 | |
059 | 滑动窗口的最大值 | 双端队列、大根堆 | |
060 | n 个骰子的点数 | ||
061 | 扑克牌的顺子 | 数组 | |
062 | 圆圈中最后剩下的数字 | 递归 | |
063 | 股票的最大利润 | 动态规划、贪心 | |
064 | 求前N个正整数之和 | 递归 | |
065 | 不用加减乘除做加法 | 位运算、递归 | |
066 | 构建乘积数组 | 数组 | |
067 | 把字符串转换成整数 | 字符串 | |
068 | 树中两个节点的最低公共祖先节点 | 二叉树、递归、树的路径 |
No | Problem & Solution |
---|---|
2 | 实现单例模式 |
3 | 二维数组中的查找 |
4 | 替换空格 |
5 | 从尾到头打印链表 |
6 | 重建二叉树2 |
7 | 用两个栈实现队列 |
8 | 旋转数组的最小数字 |
9 | 斐波那契数列/青蛙跳台阶/矩形覆盖/变态跳台阶 |
10 | 二进制中 1 的个数 |
11 | 数值的整数次方 |
12 | 打印 1 到最大的 n 位整数 |
13 | 在 o(1) 时间删除链表结点 |
14 | 调整数组顺序使奇数位于偶数前面 |
15 | 链表中倒数第 k 个节点 |
16 | 反转链表 |
17 | 合并两个排序的链表 |
18 | 树的子结构 |
19 | 二叉树的镜像 |
20 | 顺时针打印矩阵 |
21 | 包含 min 函数的栈 |
22 | 栈的压入、弹出序列 |
23 | 从上到下打印二叉树 |
24 | 二叉搜索树的后序遍历序列 |
25 | 二叉树中和为某一值的路径 |
26 | 复杂链表的复制 |
27 | 二叉搜索树与双向链表 |
28 | 字符串的排列 |
29 | 数组中出现次数超过一半的数字 |
30 | 最小的 k 个数 |
31 | 连续子数组的最大和 |
32 | 从 1 到 n 整数中 1 出现的次数 |
33 | 把数组排成最小的数 |
34 | 丑数 |
35 | 第一个只出现一次的字符 |
36 | 数组中的逆数对 |
37 | 两个链表的第一个公共结点 |
38 | 数字在排序数组中出现的次数 |
39 | 二叉树的深度 |
40 | 数组中只出现一次的数字 |
41 | 和为 s 的两个数字 VS 和为 s 的连续正数序列 |
42 | 翻转单词顺序 VS 左旋转字符串 |
43 | n 个骰子的点数 |
44 | 扑克牌的顺子 |
45 | 圆圈中最后剩下的数字 |
46 | 求前 n 项正整数的和(不能使用乘除法以及for、while、if 等关键字) |
47 | 不用加减乘除做加法 |
48 | 不能被继承的类 |
49 | 把字符串转换成整数 |
50 | 树中两个结点的最低公共祖先结点 |
51 | 数组中重复的数字 |
52 | 构建乘积数组 |
55 | 字符流中第一个不重复的字符 |
56 | 链表中环的入口结点 |
57 | 删除链表中重复的结点 |
58 | 二叉树的下一个结点 |
59 | 对称的二叉树 |
60 | 把二叉树打印成多行 |
61 | 按之字形顺序打印二叉树 |
62 | 序列化二叉树 |
63 | 二叉搜索树的第k个结点 |
64 | 数据流中的中位数 |
65 | 滑动窗口的最大值 |
- leetcode overview
- 《程序员代码面试指南 第2版》
- 《剑指offer 第2版》
- 《编程之美》
- 《编程珠玑》
- 《算法 第4版》
- 《算法导论 第3版》