- 博客(461)
- 收藏
- 关注
原创 手撕hot100之矩阵!看完这篇就AC~(下)
本文整理了 LeetCode 48 旋转图像、240 搜索二维矩阵 II 两题的通用解题思路模板,提炼核心规律并给出可直接套用的 C++、JS 双语言原地实现代码与记忆口诀。
2026-05-06 23:29:21
174
原创 手撕hot100之矩阵!看完这篇就AC~(上)
本文整理了 LeetCode 矩阵置零、螺旋矩阵两道高频经典题的思路、C++/JS 双语言代码、通用模板,提炼出两类矩阵题共性解题逻辑:先预处理边缘 / 划定边界、再处理内部、最后收尾边缘,不边遍历边破坏原矩阵信息。
2026-05-05 23:47:19
315
原创 手撕hot100之普通数组!看完这篇就AC~
本文整理LeetCode 53最大子数组和、56合并区间两道经典高频题,分别给出题目题意、思路分析、C++与JS标准刷题模板;53题讲解贪心、前缀和、分治三种解法并解释贪心保证子数组连续的原理,56题梳理先排序、再遍历比对合并的固定流程,同时配套记忆口诀与核心逻辑总结,可直接背诵用于刷题和面试。
2026-04-30 18:54:15
385
原创 手撕hot100之子串!看完这篇就AC~
本文整理LeetCode 560和239两道高频题,分别总结前缀和+哈希表统计连续子数组和为k个数、单调队列求解滑动窗口最大值**的通用思路模板,并配套给出C++和JS可直接套用的标准代码及核心解题口诀。
2026-04-29 21:16:30
501
原创 写一篇没有技术干货的文章
最开始我因为学历普通选择前端,可这半年断断续续参与了很多开放项目之后我发现,和我一同参与校招竞争的学生里,前端岗位的求职者学历并不低,985、211、研究生、留学生比比皆是,后端整体学历门槛只会更高。课内教学java使用的是Eclipse,不是IDEA,编程工具用的是VS,并不是现在常用的VS Code,放到现在我真心觉得VS Code好用很多。可网络上繁杂的信息,不断冲击、重塑我还未稳定的价值观,让我产生极致的完美主义,要求自己人生每一步都不能出错,执着寻找最优解。长期的焦虑也让我陷入严重的决策内耗。
2026-04-29 00:34:29
226
原创 手撕hot100之滑动窗口!看完这篇就AC~
本文总结两道经典滑动窗口字符串题:动态窗口去重、固定窗口字符计数匹配,分别给出 C++/JS 统一模板、易错点与核心区别,形成可直接套用的滑动窗口解题范式。
2026-04-28 11:19:39
368
原创 手撕hot100之双指针!看完这篇就AC~
本文总结移动零(同向快慢双指针)与三数之和(排序+定数+左右对撞双指针)两道经典算法题的核心思路、易错点及可直接复用的通用代码模板。
2026-04-27 12:26:45
351
原创 Leetcode 162 除了自身以外数组的乘积 | 接雨水
给你一个整数数组nums,返回 数组answer,其中answer[i]等于nums中除了nums[i]之外其余各元素的乘积。题目数据数组nums之中任意元素的全部前缀元素和后缀的乘积都在整数范围内。请且在O(n)时间复杂度内完成此题。answer[i]你可以在O(1)的额外空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的,输出数组额外空间。
2026-04-25 11:35:48
371
原创 Leetcode 161 跳跃游戏 | 跳跃游戏 II
给你一个非负整数数组nums,你最初位于数组的。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回true;否则,返回false。true可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。false无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。
2026-04-24 15:14:06
356
原创 Leetcode 160 最小覆盖子串 | 串联所有单词的子串
这道题= 最小覆盖子串的升级版上一题按字符滑动这一题按单词块滑动哈希表计数逻辑完全一样5 小结这两题我觉得我什么都不会。我一直在抄答案看题解。最小覆盖子串按字符滑动串联所有单词的子串按单词块滑动。
2026-04-23 11:58:47
367
原创 协同文档丢失?Yjs状态漂移与三层防线
协同文档刷新后丢失?根因是Yjs数据损坏且无容错。修复方案建立三层防线(归一化→容错→自愈),并收敛双通道写入,从根本上解决问题。
2026-04-22 21:27:54
566
原创 Leetcode 159 无重复字符的最长子串 | 长度最小的子数组
本题核心是“滑动窗口 + 哈希表”,你最初的代码框架完全正确,仅需补充3个关键细节:右指针 right 从 0 开始遍历,而非字符串末尾;哈希表 res 的 key 是字符、value 是下标,用 res[c] = right 记录字符位置;用 res.find(c) == res.end() || res[c] < left 判断是否重复,重复则收缩左指针。上述代码可直接提交通过,且完全贴合你的思考逻辑,重点标注了你之前不懂的两个核心点,可对照代码反复理解。没问题!我。
2026-04-20 23:21:19
433
原创 Leetcode 158 数组中的第K个最大元素 | 查找和最小的 K 对数字
找第 k 大 → 用小顶堆堆大小固定为 k比堆顶大就替换,小就跳过最后堆顶就是答案。
2026-04-17 23:54:49
362
原创 从面试题看JS变量提升
变量提升是JavaScript编译阶段将声明提前放入内存的机制。var声明提升后初始化为undefined,函数声明整体提升,函数表达式不具备此特性。let和const也有提升,但进入暂时性死区,声明前访问会报错。
2026-04-17 20:16:56
806
原创 Leetcode 157 实现 Trie (前缀树) | 添加与搜索单词 - 数据结构设计
前缀树 = 按字母分层的树,每个节点 26 个分支核心:is_end标记完整字符串三个方法:插入:建节点 + 标记结尾查找:遍历 + 必须是结尾查前缀:遍历完就为真结构和 Trie几乎一样唯一区别:search 用递归处理不会写递归也没关系,直接背这段代码就能用。
2026-04-15 23:51:02
378
原创 学习 Redux Toolkit :从 Context 误区到 createSlice 实践
本文基于Redux Toolkit官方文档整理,澄清Context非状态管理、而是依赖注入,解析Immer的可变语法与不可变结果原理,并介绍createSlice模块化开发与createAsyncThunk异步处理,助你高效使用RTK。
2026-04-15 19:08:21
528
原创 Leetcode 156 旋转图像 | 矩阵置零
顺时针旋转 90° = 上下翻转 + 主对角线翻转,这是最适合新手的原地解法代码无额外数组,纯原地修改,满足题目要求两个简单循环就能实现,逻辑清晰、好记好写记录第一行、第一列原本有没有 0遍历矩阵,把行标记放第一列,列标记放第一行用标记把中间区域置 0最后处理第一行、第一列。
2026-04-14 23:40:15
432
原创 Leetcode 155 螺旋矩阵 | 有效的数独
top:上边界(初始 = 0,第一行)bottom:下边界(初始 = 行数 - 1,最后一行)left:左边界(初始 = 0,第一列)right:右边界(初始 = 列数 - 1,最后一列)模拟顺时针转圈 + 四边界收缩固定步骤:右→下→左→上,遍历完一条边收缩一次终止条件:边界重合,所有元素遍历完成代码逻辑清晰,无坑,适合新手掌握一次遍历 + 3 个布尔数组查重行不重复、列不重复、3×3 宫不重复最难公式:*小宫编号 = (i/3)3 + (j/3)代码极简、无坑、运行效率拉满。
2026-04-12 18:20:31
365
原创 手撕发布订阅与观察者模式:从原理到实践
本文通过EventEmitter和Observer两道编程题,深入解析发布订阅模式与观察者模式的核心原理、代码实现及本质区别,帮助掌握两种设计模式。
2026-04-12 14:50:50
547
1
原创 万字长文:手撕JS深浅拷贝完全指南
别再只会用扩展运算符了!本文通过三道真题,讲透深浅拷贝所有难点,包括Date、RegExp、Map、Set及循环引用处理。
2026-04-10 21:52:06
431
原创 手撕代码之实现new操作符
实现new操作符:获取构造函数,用Object.create创建原型链接对象,执行构造函数绑定this,若构造函数返回对象则返回该对象否则返回新对象。
2026-04-09 23:38:29
490
原创 Leetcode 154 两数相加 | 反转链表 II
这道题绝对不要转数字,会溢出!直接按位相加 + 处理进位是标准解法哑节点 + 遍历指针是链表题通用套路代码很短、逻辑清晰,面试高频必背感恩了,这下自己再写一遍也写得出来了,ok!3 题目92. 反转链表 II给你单链表的头指针head和两个整数left和right,其中。请你反转从位置left到位置right的链表节点,返回反转后的链表。示例 1:示例 2:[5]链表中节点数目为n。
2026-04-09 23:36:33
347
原创 关于 SSR,我承认我之前只是“会用”而已
本文介绍SSR与Hydration的原理与实践,区分CSR与SSR的适用场景,剖析Next.js背后的renderToString与hydrateRoot机制,帮助开发者理解框架封装的底层逻辑。
2026-04-08 15:54:21
1001
原创 Leetcode 153 课程表 | 腐烂的橘子
看到一个'1',就把它和周围连着的所有'1'都变成'2'(表示访问过),然后岛屿数+1。:两层循环找'1',找到就调DFS;DFS里先判断,越界非'1'就返回;改值标记然后递归四个方向。
2026-04-07 23:11:32
384
原创 手撕JS数组三大方法:map、filter、reduce
本文涵盖手写 _map、_filter、_reduce 三道题目,附有 MDN 文档说明、规范解读及多种实现代码,完整呈现了数组高阶方法的手写实现。
2026-04-07 15:07:36
531
原创 Leetcode 152 被围绕的区域 | 岛屿数量
这道题核心是反向标记,不是直接找被包围区域DFS 代码简洁好写,适合面试BFS 非递归,适合大数据O(m×n)(每个格子只访问一次)O(m×n)(递归栈 / 队列最大空间)1 = 陆地0 = 海洋上下左右连在一起的 11 个岛屿只要不连在一起,就是新的岛屿遇到 1 = 新岛屿,计数 +1DFS/BFS 淹掉整个岛屿,防止重复O(m×n)(每个格子只走一次)O(m×n)(递归栈 / 队列)
2026-04-06 23:43:11
378
原创 继承与原型链(一):核心概念与纯原型链的问题
本文讲解原型链三个核心概念,以及四种继承方案的递进关系:纯原型链→盗用构造函数→组合继承→寄生式组合继承。
2026-04-06 16:06:52
471
原创 Leetcode 151 最大正方形 | 买卖股票的最佳时机 III
我们定义:dp[i][j]:以矩阵中坐标(i,j)为右下角的最大全 1 正方形的边长为什么选右下角?因为正方形是由上方、左方、左上方三个小正方形拼接而成的,右下角能统一这三个方向的状态。不知道 DP 数组定义什么 →以当前点为右下角的最大正方形边长不知道怎么转移 →取三个方向最小值 + 1没想到正方形的拼接规律 →右下角是最优状态定义点这道题是二维动态规划的经典模板题,记住这个状态定义和转移方程,同类题直接套用即可!状态dp[i][j]= 以(i,j)为右下角的最大全 1 正方形边长转移时,
2026-04-02 23:06:57
333
原创 手撕代码之事件委托
本题要求使用 DOM0 级事件为 ul 绑定点击,通过事件委托判断 li 元素,利用 textContent 在其内容后拼接“.”符号,实现动态内容更新。
2026-04-01 22:41:07
514
原创 Leetcode 150 最小路径和 | 最长回文子串
dp[i][j]从左上角 (0,0) 走到 位置 (i,j) 的最小路径和这就是我们要维护的数组,最终答案就是(右下角)。我们没有做任何贪心选择,没有只看当前一步每个位置都存了走到这里的全局最优解后面的位置只依赖前面已经算好的最优解O(m*n)(遍历一遍网格,最快)O(m*n)(用了一个 dp 数组,最简单)DP 数组定义dp[i][j]= 走到 (i,j) 的最小路径和转移方程dp[i][j] = min(上边, 左边) + 当前值初始化:第一行、第一列只能单向走,直接累加结果。
2026-04-01 00:00:59
340
原创 万字长文:从零实现 Yjs + Hocuspocus 协同文档
本文复盘基于 Yjs + Hocuspocus 的协同文档全栈实现,涵盖服务搭建、权限模型、协同开关、时序问题处理及并发机制,总结从 0 到 1 落地协同功能的关键经验。
2026-03-30 23:03:05
556
原创 Leetcode 148 最长递增子序列 | 三角形最小路径和
dp [i] = 以 nums [i] 这个数字结尾的最长递增子序列长度必须以第 i 个数结尾!
2026-03-28 15:36:07
368
原创 Lexical依赖版本冲突与标题渲染
修复了因 Lexical 依赖版本冲突导致的 PDF/Doc 导出崩溃问题,以及文档标题更新后的 UI 同步问题。总结依赖管理、错误定位及 Hook 与工具函数选型的经验。
2026-03-28 13:52:11
883
原创 万字长文:从零实现 JWT 鉴权
本文系统回顾JWT鉴权实现,详解Express中间件校验、MongoDB用户模型设计,覆盖前后端交互、状态管理与安全实践,完整呈现一套可落地的身份认证方案。
2026-03-26 16:34:03
634
原创 Leetcode 146 爬楼梯 | 打家劫舍
把大问题拆成小问题 → 找到小问题的规律(递推公式)→ 用小问题的答案算出大问题的答案它的核心就是不重复计算,把之前算过的结果存起来,直接用。爬楼梯本质就是斐波那契数列动态规划三步:定义dp[i]写递推公式初始化 + 循环计算代码优先用优化迭代版,效率最高dp[i]= 偷到第 i 间房子时,能偷到的最大金额偷 = 前前一个 + 当前钱不偷 = 前一个的钱选最大的那个!dp [i] = 到第 i 个位置时的答案永远只有2 种选择(99% 的题)
2026-03-25 23:57:52
481
原创 Leetcode 145 回文数 | 加一
给你一个整数x,如果x是一个回文整数,返回true;否则,返回false。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。121123x = 121truex = -121false从左向右读, 为 -121。从右向左读, 为 121-。因此它不是一个回文数。x = 10false从右向左读, 为 01。因此它不是一个回文数。你能不将整数转为字符串来解决这个问题吗?
2026-03-24 23:45:08
488
原创 AJAX vs Fetch API:Promise 与异步 JavaScript 怎么用?
从 AJAX 到 Fetch,详解 Promise 用法、链式调用与 async/await,掌握现代 JS 异步编程。
2026-03-24 12:02:42
564
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅