# 每日一题

全排列 数青蛙 对数组执行操作
统计范围内的元音字符串数 可被 k 整除的最小整数 礼物的最大甜蜜度
二进制相加 活字印刷 叶值的最小代价生成树
根到叶路径的不足节点 受标签影响的最大值 删点成林
栈实现队列 Offer 11 —— 旋转数组的最小数字 前序中序构造二叉树
输入一个数组转为二叉树 变态跳台阶 可被三整除的最大和
斐波那契数列 调整数组顺序 二进制中 1 的个数
找出中枢整数 反转链表 合并两个排序的链表
删除一次得到子数组最大和 树的子结构 顺时针打印矩阵
翻转二叉树 Offer 30 —— 包含 min 函数的栈 回环句
两数相加 2 Offer 31 —— 栈的压入,弹出序列 矩阵中的和
Offer 32 —— 从上到下打印二叉树 Offer 33 —— 二叉搜索树的后序遍历序列 Offer 06 —— 从尾到头打印链表
Offer 04 —— 二维数组中的查找 Offer 34 —— 二叉树中和为某一值的路径 路径总和
拆分成最多数目的正偶数之和 Offer 38 —— 字符串排列 Offer 36 —— 二叉搜索树与双向链表
Offer 35 —— 复杂链表的复制 最接近的三数之和 Offer 42 —— 连续子数组的最大和
Offer 43 —— 1~n 整数中 1 出现的次数 Offer 45 —— 把数组排成最小的数 Offer 49 —— 丑数
第一次只出现一次的字符 最大子序列交替和 Offer 51 —— 数组中的逆序对
Offer 52 —— 两个链表的第一个公共节点 Offer 56 —— 数组中数字出现的次数 平衡二叉树
Offer 57 —— 和为s的连续正数序列 ROL 判断版本号
约瑟夫环 n个数相加 环形子数组的最大和
字符串转为整数 Offer 66 —— 构建乘积数组 Offer 20 —— 表示数值的字符串
不含重复字符的最长子字符串 链表中环的入口节点 删除链表的倒数第n个节点
Offer 32 —— 按之字形顺序打印二叉树 序列化二叉树 滑动窗口的最大值
最长递增子序列 KMP 有序数组的平方
长度最小的子数组 快乐数 三数之和
子数组绝对值最大值 括号匹配 下降路径的最小和
最长递增子序列2 最长回文子串 小红构造字符串
陡峭值 最大排列差 拼接字符串
最小覆盖子串

# 手撕题

手写一个 count 手写一个闭包 函数节流与抖动 自定义实现 call
实现一个类 reduce 函数 事件委托 数组去重 自定义实现 apply
实现 Array.filter 实现 Array.map 快速排序 自定义实现 bind
reduce 实现 map 实现 instanceof 检验 url 是否合法 实现new
冒泡排序 实现Object.create 浅拷贝和深拷贝 parseInt
归并排序 实现红绿灯 斐波那契 实现add
手写flatten 实现Object.freeze 终极版深拷贝 千位分割符
列表渲染 大顶堆和小顶堆 html 生成页码
手写Promise.all 手写Promise.resolve 手写Promise.race 手写Promise.allSettled
Proxy计数器 LRU实现

# 题型记录

数组 链表
哈希表 字符串
栈和队列 回溯
二叉树 贪心