03 2025 档案
摘要:1.二叉树最大深度 思路: 如果节点为空 (root null),表示这一部分的深度是 0。 如果节点不为空,递归地计算左子树和右子树的深度,然后返回左右子树深度的最大值加上 1(表示当前节点的深度) 代码实现: function maxDepth(root) { // 基本情况:如果节点为空,深度
        阅读全文
                
摘要:问题描述: 给定一个整数数组 nums,要求找到一个连续的子数组(至少包含一个元素),使得该子数组的和最大。返回这个最大和 输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 子数组 [4,-1,2,1] 的和最大,为 6。 解决方法 这个问题可以使用动态规划来求解。 动态规划转
        阅读全文
                
摘要:爬楼梯问题是一个经典的动态规划问题,通常表述为:一个人站在楼梯的底部,每次可以选择爬 1 级或 2 级楼梯,问到达楼顶有多少种不同的方式。 问题分析 每次可以选择向上爬 1 层楼梯,或者 2 层楼梯。 假设我们在第 n 层楼梯,那么在到达第 n 层楼梯时,前一步可以是从第 n-1 层楼梯爬上来的,或
        阅读全文
                
摘要:一个峰值元素是指一个元素,它大于或等于它的左右邻居(如果有的话)。 问题描述 给定一个整数数组 nums,请找出其中的一个峰值元素,并返回它的索引。 你可以假设数组的左右边界的元素永远是负无穷。 例如,nums = [1, 2, 3, 1],则峰值元素是 3,返回其索引 2。 解法思路 我们可以利用
        阅读全文
                
摘要:常数时间 O(1) 指的是无论数据量多大,操作的执行时间都保持恒定不变,不会随着输入规模增加而增加。换句话说,不管栈中有 10 个元素还是 10 万个元素,执行某个操作(如获取最小元素)所需的时间都是一样的。 例: 示例: MinStack minStack = new MinStack(); mi
        阅读全文
                
摘要:给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效,例: 输入:() -> 返回 true 输入:()[]{} -> 返回 true 输入:(] -> 返回 false 输入:([)] -> 返回 false 输入:{[]} -> 返回true 示例表
        阅读全文
                
摘要:https://zhuanlan.zhihu.com/p/9179488776
        阅读全文
                
摘要:方法整理 方案适用版本实现关键点优缺点 React Router v6 ✅ React Router v6 <Route element={<PrivateRoute />}> + <Outlet /> ✅ 优点: 代码简洁,受保护路由统一管理。 ❌ 缺点: 仅适用于 React Router v6
        阅读全文
                
摘要:HEAD 请求方法是 HTTP 协议中的一种请求方法,它的作用与 GET 方法类似,但它只返回响应头(Headers),不会返回响应体(Body)。 如果只需要资源的信息,而不需要实际内容(比如检查图片是否更新),使用 HEAD 可以减少不必要的数据传输。 Head请求的用途 1. 检测资源是否可用
        阅读全文
                
摘要:跨域只存在于浏览器。是由于浏览器同源安全策略导致的(所以后端用postman访问告诉你没跨域时,别奇怪)同源策略(Same-Origin Policy, SOP) 是 浏览器 实施的一种安全机制,限制不同源的网页互相访问数据,防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF)。所谓同源是指协议、主
        阅读全文
                
摘要:在 Webpack 中,入口(entry)决定了构建的起点。Webpack 支持 单入口 和 多入口,具体如何配置如下: 1. 单入口配置 适用于 单页面应用(SPA),即 Webpack 只从一个文件开始解析。 单入口时,值为字符串,也可以是字符串数组 const path = require("
        阅读全文
                
摘要:哈希表是什么 是一种用于存储键值对(key-value pair)的数据结构。在哈希表中,通过哈希函数将键(key)映射到数组的某个位置(索引),然后在该位置存储对应的值(value)。 哈希表适用于处理需要根据键快速查找的场景,如数据库索引、缓存等。 哈希表的关键特性: 键的唯一性:每个键在哈希表
        阅读全文
                
摘要:链表(Linked List)是一种线性数据结构,它由一系列的节点组成,其中每个节点包含两部分: 数据部分:存储节点的实际数据。 指针部分:存储指向下一个节点的引用(或指针)。 与数组不同,链表中的元素不需要在内存中是连续的。每个节点通过指针连接到下一个节点,形成一个链式结构。 链表有多个变种,包括
        阅读全文
                
摘要:栈(Stack) 栈是一种遵循 后进先出(LIFO, Last In First Out)原则的数据结构。也就是说,最后被放入栈中的元素会最先被取出。 push():将一个或多个元素添加到数组的末尾,返回新数组的长度。 pop():移除数组的最后一个元素,并返回该元素。 peek()(自定义方法):
        阅读全文
                
摘要:数组中找到两个数,它们的和等于给定的目标值 判断一个字符串是否是回文字符串 二分查找法(变种的:数组峰值) 快速排序算法 动态规划: 爬楼梯 最小子序列和 栈的应用: 括号匹配 常数时间内找出栈中的最小元素 随机数相关: js抽奖算法 js生成指定范围的随机数 深拷贝函数的实现 双指针边界总结
        阅读全文
                
摘要:在一个给定的数字数组中找到两个数,它们的和等于给定的目标值。可以通过多种方法来解决这个问题,以下是两种常见且高效的解决方案。 方法 1:使用哈希表 (Set 或 Map) 通过哈希表来存储已经遍历过的数字,利用哈希表的快速查找特性来实现。在遍历数组的同时,检查当前数字与目标值的差值是否已经存在于哈希
        阅读全文
                
摘要:回文字符串是指正着读和反着读都相同的字符串。比如 "racecar" 或 "level"。 方法 1:使用双指针法 通过使用两个指针,一个指向字符串的开始,另一个指向字符串的结束,逐个比较字符。 function isPalindrome(str) { let left = 0; let right
        阅读全文
                
摘要:前端中常用的模块格式主要有:CommonJS、ESM、AMD. 模块化方式特点使用场景代码示例 CommonJS 同步加载模块 主要用于 Node.js 环境 服务器端(Node.js)使用 module.exports 或 exports 对外暴露模块 使用require导入模块 const ad
        阅读全文
                
摘要:React 的 Context API 是 React 提供的一种用于在组件树中共享数据的机制,可以让我们不需要通过 props 一层层地传递数据,避免了在深层嵌套的组件中逐级传递相同的数据 Context API 的核心概念 Context: Context 是 React 提供的对象,它可以在整
        阅读全文
                
摘要:useReducer 是 React 中用于处理复杂状态逻辑的 Hook。它可以帮助你将一个复杂的状态对象分解成更细粒度的子状态,并通过定义动作(actions)来管理这些状态的变化。 具体来说,useReducer 适用于需要多个子状态或者依赖多个操作的场景。它的核心是通过一个 reducer 函
        阅读全文
                
摘要:虚拟dom是react的核心概念,它使用js对象来反应真实dom的结构。 当组件的状态变更后,react会计算出新的虚拟dom树,并跟前一次的虚拟dom树进行对比,找出差异(也就是需要更新的部分),最后仅将这些差异应用到真实 DOM 中。通过这种方式,React 避免了对真实 DOM 的频繁操作,从
        阅读全文
                
摘要:在 Node.js 中,当你使用 require() 加载一个模块时,模块会被缓存,这样当你再次 require() 同一个模块时,Node 会直接返回缓存中的模块,而不会重新加载它。这个机制提高了性能,避免了重复加载相同模块。 Node.js 将加载的模块存储在 require.cache 对象中
        阅读全文
                
摘要:Express 中间件通常被描述为“洋葱圈模型”(Onion Model)。这个模型是用来形象化描述中间件的执行顺序和生命周期的。 在 Express 中,中间件是按顺序执行的,并且可以有两种类型的执行路径: 请求阶段(Request Phase):请求从外到内穿过中间件栈,直到到达路由处理函数或其
        阅读全文
                
 
                    
                
 浙公网安备 33010602011771号
浙公网安备 33010602011771号