这里面有 10 个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树;
10 个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算 法、动态规划、字符串匹配算法。
vue源码相关练习题目
- 剑指 Offer II 082. 含有重复元素集合的组合 - 力扣(LeetCode)
- 剑指 Offer II 016. 不含重复字符的最长子字符串 - 力扣(LeetCode)
- 剑指 Offer 48. 最长不含重复字符的子字符串 - 力扣(LeetCode)
- 剑指 Offer II 019. 最多删除一个字符得到回文 - 力扣(LeetCode)
- 1446. 连续字符 - 力扣(LeetCode)
- 剑指 Offer II 119. 最长连续序列 - 力扣(LeetCode)
5.5 去除有序数组的重复元素
一、 基本算法思想
1-1 回溯/递归
2023/1/31
-
- 1. 47. 全排列 II【脑子呼呼的,做不出来!】
2023/1/31
1-2 动态规划dp
2023/1/31
2023/2/1
- 322. 零钱兑换
- 354. 俄罗斯套娃信封问题
- 3. 最长递增子序列的个数【差一点点,西路很清晰】
- 53. 最大子数组和【改了两三行】
- 1143. 最长公共子序列
- 516. 最长回文子序列
- 72. 编辑距离
- 1312. 让字符串成为回文串的最少插入次数
- 474. 一和零
- 494. 目标和
- [ ]
1-3
二、 排序
2-1 O(n2)
2-1-1 冒泡排序
2-1-2 插入排序
2-1-3 选择排序
2-1-4 希尔排序
2-2 O(nlogn)
2-2-1 归并排序
2-2-2 快速排序
2-2-3 堆排序
2-3 O(n)
2-3-1 计数排序
2-3-2 基数排序
2-3-3 桶排序
三、 树
3-1 二叉树
1/25
- 剑指 Offer 55 - I. 二叉树的深度
- 111. 二叉树的最小深度
- 124. 二叉树中的最大路径和【改了一行代码】
- 100. 相同的树
- 105. 从前序与中序遍历序列构造二叉树
if(preLeft > preRight || inLeft > inRight) return null;
- 106. 从中序与后序遍历序列构造二叉树
2023/2/1
3-1-1 平衡二叉树
3-1-2 二叉查找树
1/25
- 653. 两数之和 IV - 输入二叉搜索树【改了一行bug】
- 700. 二叉搜索树中的搜索
- 701. 二叉搜索树中的插入操作
- 98. 验证二叉搜索树 【部分测试用例不通过】
-
var isValidBST = function(root) { const realValidBST = (root, min,max) => { if(root === null) return true; if(min !== null && min.val >= root.val) return false; if(max !== null && max.val <= root.val) return false; return realValidBST(root.left, min, root) && realValidBST(root.right, root, max) } return realValidBST(root, null, null) }; // var isValidBST = function(root) { // if(root === null) return true; // if(root.left && root.left.val >= root.val) return false; // if(root.right && root.right.val <= root.val) return false; // return isValidBST(root.left) && isValidBST(root.right) // };
- 99. 恢复二叉搜索树
- 450. 删除二叉搜索树中的节点 【能写出来,测试用例通过一半,需要改动三处】
- 剑指 Offer 68 - II. 二叉树的最近公共祖先
3-1-3 平衡二叉查找树
3-1-4 完全二叉树
1/26
3-1-5 满二叉树
3-2 多路查找树
3-3 堆
3-3-1 小顶堆
3-3-2 大顶堆
3-3-3 斐波那契堆
3-3-4 二项堆
3-3-5 优先级队列
四 、图
4-1 图的存储
4-1-1 临界矩阵
4-1-2 邻接表
4-2 拓扑排序
4-3 最短路径
4-4- 关键路径
4-5 最小生成树
4-6 二分图
4-7 最大流
五、 搜索
5-1 深度优先搜索
5-2 广度优先搜索
六、查找
6-1 线性表查找
6-2 树结构查找
6-3 散列表查找
七、 散列表
7-1 散列函数
7-2 冲突解决
7-2-1 链表法
7-2-2 开放寻址法
7-2-3 其他
7-3 动态扩容
7-4 位图
八、 线性表
8-1 数组
1/28
8-2 链表
8-2-1 单链表
1/28
- 剑指 Offer II 025. 链表中的两数相加 【一直在出小问题】
- 2. 两数相加
- 234. 回文链表
- 剑指 Offer II 018. 有效的回文
- 92. 反转链表 II 【有改不了的bug】
8-2-2 双向链表
8-2-3 循环链表
8-2-4 双向循环链表
8-2-5 静态链表
8-3 栈
8-3-1 顺序栈
- 739. 每日温度【一行bug】
- 503. 下一个更大元素 II【一行bug】
- 496. 下一个更大元素 I