首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
数据结构与算法
温叶的代码日记
创建于2022-07-10
订阅专栏
数据结构与算法
暂无订阅
共10篇文章
创建于2022-07-10
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
扁平化数组&打乱数组
扁平化数组 就是将一个多层的数组拍扁,比如[1, [2, [3, [4, 5]]], 6]拍成[1, 2, 3, 4, 5, 6]。 递归写法 这个没啥难度,就是定义一个结果数组,然后循环原数组,如果
带并发限制的异步调度器
题目 分析 这道题的特点就是限制了同时执行的并发数目,如果一个任务完成了就取剩下的任务继续执行。我们就可以很容易的想到,定义一个队列,将一时间执行不了的任务先放到任务队列中存着呗,等之前任务执行完再取
Trie树
介绍 Tire树又称字典树/前缀树,具有如下特点 根节点不包含字符 除根节点外每个节点只包含一个字符 树的每一个路径都是一个字符串 每个节点的子节点包含的字符都不相同 用途 利用字符串的公共前缀来降低
双栈实现队列
题目介绍 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推
双队列实现栈
题目介绍 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。 实现 MyStack 类: void push(int x) 将
LFU缓存
介绍 LFU缓存其实就是删除最不常用的缓存策略,例子如下 缓存最大3个数,值为 [1,2,3] 访问顺序: 1 1 1 2 2 3 新增值时需要删除的值为3 因为3最访问了一次是最少的(即使他刚刚访问
LRU缓存
介绍 LRU缓存实际就是将最近最少使用的数据删除的缓存策略,举个例子 缓存长度为3,目前有三个值分别是 [1, 2, 3] 然后我们访问缓存的顺序为 1 1 1 2 3 此时我们需要新增一个缓存,因为
二叉堆
基础 满二叉树 定义: 除最后一层没有任何子节点外 每一层节点都有两个子节点 数学公式: 层次为h(从0开始) 深度为d(h+1) 节点总数n 每一层的节点个数: 2^n 节点总数: 2^d -1 深
平衡二叉树
介绍 定义 平衡二叉树又叫平衡二叉排序树,听名字知道和二叉排序树相关。实际上平衡二叉树就是每个节点最大高度差为1的二叉排序树。 相比较二叉排序树,平衡二叉树查找,插入和删除的时间复杂度都维持在O(lo
二叉排序树
介绍 二叉排序树又称二叉搜索树,听名字都知道是方便排序和查找的树 定义 可以是一颗空树 或者是具有如下性质的二叉树 若左子树不空 则左子树上所有节点的值都小于根节点的值 若右子树不空 则右子树上所有节