zhangdi
开发
运动
明侦
英语
开发
项目与实战
项目
项目总结
前端 - VitePress
前端 - Next.js
后端 - NestJS
基建
Git & GitHub
pnpm + monorepo
开发规范
部署 - GitHub Actions
监控
服务器
Linux
Nginx
Node
Docker
PM2
VPN ⌛️
功能
库与工具
图片
解决问题记录
其它
AI
视频
收藏
数据结构与算法
数据结构与算法
参考
位运算
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.全排列
设计模式
设计模式
简介
设计原则
对比
面试/案例
创建型
原型模式 ⭐
工厂模式 ⭐
单例模式 ⭐
建造者模式
结构型
装饰器模式 ⭐
代理模式 ⭐
适配器模式 ⭐
外观模式 📖
组合模式 📖
享元模式 📖
桥接模式
行为型
观察者 & 发布订阅模式 🔥
中介者模式 📖
迭代器模式 ⭐
策略模式 ⭐
职责链模式 ⭐
模板方法模式 📖
命令模式 📖
状态模式 📖
访问者模式
备忘录模式
解释器模式
网络与安全
协议
网络分层模型
TCP
DNS
UDP ⌛️
WebSocket ⌛️
HTTP
概述
报文
缓存
CDN
跨域
HTTPS
SSE ⌛️
代理
抓包工具 ⌛️
攻击
安全策略
前后端知识
HTML
要览
CSS
要览
Flex
响应式
工程化
JavaScript
要览
类型判断、深浅克隆
原型、原型链、继承
作用域、闭包
this
Promsie
事件循环
浏览器工作原理
模块化
节流、防抖
面试手写题
性能
性能监控
性能优化
框架
Vue
SSR
微前端 ⌛️
工程化
CI/CD
Babel
webpack
Vite
npm
脚手架
后端
NestJS
收藏
收藏文章
功能
其他