算法与数据结构
大法师安东尼ds
这个作者很懒,什么都没留下…
展开
-
性能&设计模式
由于底层使用了红黑树结构,每次插入元素时会自动对元素进行排序。你可以在遍历时按键值的顺序访问元素。哈希表不维护元素的顺序,元素的插入顺序和访问顺序没有特定规则,完全取决于哈希值的分布。末尾 O(1),其他 O(n)末尾 O(1),其他 O(n)O(1) 均摊,最坏 O(n)O(1) 均摊,最坏 O(n)O(1) 均摊,最坏 O(n)O(1) 均摊,最坏 O(n)O(1) 均摊,最坏 O(n)O(1) 均摊,最坏 O(n)高(每个元素有指针)原创 2024-09-26 18:50:39 · 658 阅读 · 0 评论 -
力扣热题100
【代码】力扣热题100。原创 2024-01-10 22:08:10 · 449 阅读 · 0 评论 -
基础数据结构
删除:swap[heap[1], heap[size]], size--, down[1] 删除头元素很麻烦。删除任意元素:heap[k] = heap[size];down(k), up(k)修改元素:heap[k] = x;down(k), up(k)插入:heap[s++] = x, up(size)从 n/2 开始 down,复杂度为 O(n)down: 往下调整,求最小:heap[1]原创 2024-01-07 15:29:06 · 413 阅读 · 0 评论 -
二叉树 经典例题
h层,则最底层最右边元素是2^{h-1}最左边是2^{h}-1。后序最后一个节点是根节点-->确定左子树和右子树。任意节点左右子树高度差原创 2023-12-31 16:27:26 · 507 阅读 · 0 评论 -
双指针/滑动窗口/贪心 经典例题
【代码】双指针/滑动窗口/贪心 经典例题。原创 2023-12-31 14:57:53 · 410 阅读 · 0 评论 -
二分查找 经典例题
public:// 大于等于最小值模板1int r1 = r;// 小于等于最大值模板2。原创 2023-12-31 14:36:19 · 486 阅读 · 0 评论 -
动态规划 典型例题
以下标 i 的元素结尾的最长递增子序列的长度。可以不连续,所以else后面有差异。行号从 1 开始,列从 0 开始。大体和上一题类似,操作有三种。第一个维度删掉,第二个反过来。原创 2023-12-31 13:35:58 · 896 阅读 · 0 评论 -
图论 经典例题
对有向图的节点排序,使得对于每一条有向边 U-->V U都出现在V之前。建立映射 [0, a, b] 其中 0 代表人名,a 代表邮箱地址。先连通,看连通块的数量,连接 n 个块需要 n - 1 个边。找到不能进入环的点,跟它在不在环里面没关系。从出度为 0 的点出发,它们不可能在环中。构建并查集的操作基本都是一样的。1.查询根节点 + 路径压缩。并查集 + 求连通块的数量。根据父节点的特点找冗余路径。变体,需要维护连通块的数量。依次删去度数为 1 的点。题眼一般是多个集合的合并。原创 2023-12-27 21:23:14 · 1032 阅读 · 0 评论 -
链表 典型习题
【代码】链表常见算法。原创 2023-12-23 22:21:46 · 398 阅读 · 0 评论 -
回溯算法 典型习题
枚举各种可能的情况。0.直接枚举子集1.约束条件是子集中数字的和 392.约束条件是子集的大小 77 46 473.约束条件是1 2两者的结合 21614.约束条件是集合数 + sum 93 6985.去重:同层删去相同的递归起点6.约束条件是 子集中数的大小关系 4917.前一个情况可能是后一个情况的约束 51。原创 2023-12-23 22:53:01 · 387 阅读 · 0 评论