zhangdi
开发
运动
明侦
英语
简历
登录
开发
项目与实战
项目
项目总结
前端 - VitePress
前端 - Next.js
后端 - NestJS
基建
Git & GitHub
pnpm + monorepo
开发规范
部署 - GitHub Actions
监控
服务器
Linux
Nginx
Node
Docker
PM2
VPN ⌛️
功能
库与工具
图片
解决问题记录
其它
AI
视频
收藏
前后端知识
HTML
要览
CSS
要览
Flex
响应式
工程化
JavaScript
要览
类型判断、深浅克隆
原型、原型链、继承
作用域、闭包
this
Promsie
事件循环
浏览器工作原理
模块化
节流、防抖
面试手写题
性能
性能监控
性能优化
框架
Vue3 源码分析
React 源码分析
SSR
微前端 ⌛️
工程化
CI/CD
Babel
webpack
Vite
npm
脚手架
后端
NestJS
收藏
收藏文章
功能
其他
网络与安全
协议
网络分层模型
TCP
DNS
UDP ⌛️
WebSocket ⌛️
HTTP
概述
报文
缓存
CDN
跨域
HTTPS
SSE ⌛️
代理
抓包工具 ⌛️
攻击
安全策略
设计模式
简介
设计原则
对比
面试/案例
创建型
原型模式 ⭐
工厂模式 ⭐
单例模式 ⭐
建造者模式
结构型
装饰器模式 ⭐
代理模式 ⭐
适配器模式 ⭐
外观模式 📖
组合模式 📖
享元模式 📖
桥接模式
行为型
观察者 & 发布订阅模式 🔥
中介者模式 📖
迭代器模式 ⭐
策略模式 ⭐
职责链模式 ⭐
模板方法模式 📖
命令模式 📖
状态模式 📖
访问者模式
备忘录模式
解释器模式
数据结构与算法
参考
位运算
todo ⌛️
数组
26.删除有序数组中的重复项
88.合并两个有序数组
136.只出现一次的数字
189.轮转数组
LCR 006. 排序数组中两数之和
栈
20.有效的括号
232.用栈实现队列
844.比较含退格的字符串
队列
933.最近的请求次数
链表
链表介绍
2.两数相加
19.删除链表的倒数第 N 个结点
21.合并两个有序链表
83.删除排序链表中的重复元素
141.环形链表
160.相交链表
206.反转链表
234.回文链表
237.删除链表中的节点
集合
3.无重复字符的最长子串
349.两个数组的交集
字典
1.两数之和
146.LRU 缓存 🌟
387.字符串中的第一个唯一字符
去除字符串中出现次数最少的字符
树
树介绍
94.二叉树的中序遍历
100.相同的树
101.对称二叉树
102.二叉树层序遍历
104.二叉树的最大深度
111.二叉树的最小深度
112.路径总和
113.路径总和 II
129.求根节点到叶节点数字之和
144.二叉树的前序遍历
145.二叉树的后序遍历
199.二叉树的右视图
226.翻转二叉树
230.二叉搜索树(BST)中第 K 小的元素
429.N叉树的层序遍历
堆
堆介绍
215.数组中的第K个最大元素
347.前 K 个高频元素
最小K个数
图
65.有效数字
排序和搜索算法
排序算法
搜索算法
分治
分治介绍
374.猜数字大小
704.二分查找
动态规划
53.最大子数组和
70.爬楼梯
121.买卖股票的最佳时机
198.打家劫舍
300.最长递增子序列 🌟
509.斐波那契数
746.使用最小花费爬楼梯
LCR 127.跳跃训练
贪心
122.买卖股票的最佳时机 II
455.分发饼干
回溯
46.全排列