<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[fengruxue的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/frxnance</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; frxnance]]></copyright><item><title><![CDATA[LeetCode 二叉树题目详解（第1500-最后）]]></title><link>https://blog.youkuaiyun.com/frxnance/article/details/153741924</link><guid>https://blog.youkuaiyun.com/frxnance/article/details/153741924</guid><author>frxnance</author><pubDate>Wed, 22 Oct 2025 18:31:10 +0800</pubDate><description><![CDATA[题目描述：判断二叉树是否满足奇偶树的条件：偶数层所有节点值为奇数且严格递增，奇数层所有节点值为偶数且严格递减。题目链接：https://leetcode.cn/problems/even-odd-tree/ 难度等级：中等解题思路： 使用广度优先搜索（BFS）进行层次遍历。对于每一层，检查节点值是否满足条件：偶数层节点值必须为奇数且严格递增，奇数层节点值必须为偶数且严格递减。时间复杂度：O(n) - 遍历所有节点 空间复杂度：O(w) - 队列宽度，最坏情况下为O(n)]]></description><category></category></item><item><title><![CDATA[二叉树（第300-1500道题）]]></title><link>https://blog.youkuaiyun.com/frxnance/article/details/153740979</link><guid>https://blog.youkuaiyun.com/frxnance/article/details/153740979</guid><author>frxnance</author><pubDate>Wed, 22 Oct 2025 18:04:43 +0800</pubDate><description><![CDATA[题目描述：计算给定二叉树的所有左叶子之和。左叶子节点是指是左子节点且是叶子节点的节点。题目链接：https://leetcode.cn/problems/sum-of-left-leaves/ 难度等级：简单解题思路： 使用深度优先搜索（DFS）遍历二叉树。对于每个节点，检查其左子节点是否为叶子节点（即左子节点不为空，且左子节点的左右子节点均为空）。如果是，则将左子节点的值累加到总和中。然后递归处理左子树和右子树。时间复杂度：O(n)，其中n是节点数。每个节点被访问一次。]]></description><category></category></item><item><title><![CDATA[LeetCode 301-310 题目详解]]></title><link>https://blog.youkuaiyun.com/frxnance/article/details/153693324</link><guid>https://blog.youkuaiyun.com/frxnance/article/details/153693324</guid><author>frxnance</author><pubDate>Tue, 21 Oct 2025 16:48:27 +0800</pubDate><description><![CDATA[计算矩形面积：(maxRow - minRow + 1) × (maxCol - minCol + 1)给定一个二值图像，其中'1'表示黑色像素，'0'表示白色像素。累加数是一个字符串，组成它的数字可以形成累加序列（每个数字是前两个数字之和）。设计一个类，能够高效计算数组中索引left到right之间元素的和。删除最小数量的无效括号，使得输入的字符串有效，返回所有可能的结果。给定一个空的水域，逐个位置添加陆地，每次添加后返回当前岛屿数量。​：O(k×α(m×n)) - k次操作，α是反阿克曼函数。]]></description><category></category></item><item><title><![CDATA[LeetCode 291-300 题详细解析]]></title><link>https://blog.youkuaiyun.com/frxnance/article/details/153190269</link><guid>https://blog.youkuaiyun.com/frxnance/article/details/153190269</guid><author>frxnance</author><pubDate>Mon, 13 Oct 2025 12:56:57 +0800</pubDate><description><![CDATA[​：给定一个只包含'+'和'-'的字符串，两人轮流操作，每次可以将两个连续的'+'翻转为'--'。这里的匹配是双向的，且模式中的每个字符必须映射到字符串中的一个非空子串。​：给定一个只包含'+'和'-'的字符串，每次操作可以将两个连续的'+'翻转为'--'，返回所有可能的操作结果。​：给定一个网格，1表示朋友的位置，0表示空地。​：根据秘密数字和猜测数字，返回提示：A表示数字和位置都正确，B表示数字正确但位置错误。使用两个堆：最大堆存储较小的一半数字，最小堆存储较大的一半数字，保持两个堆的大小平衡。]]></description><category></category></item><item><title><![CDATA[LeetCode 281-290 题详细解析]]></title><link>https://blog.youkuaiyun.com/frxnance/article/details/153189957</link><guid>https://blog.youkuaiyun.com/frxnance/article/details/153189957</guid><author>frxnance</author><pubDate>Mon, 13 Oct 2025 12:51:28 +0800</pubDate><description><![CDATA[​：给定一个m x n的网格，每个细胞有一个初始状态：1表示活，0表示死。​：给定一个仅包含数字的字符串和一个目标值，在数字之间添加二元运算符（+、-或*），返回所有能够得到目标值的表达式。​：给定一个m x n的网格，其中-1表示墙，0表示门，INF表示空房间。​：给定一个包含n+1个整数的数组，数字在1到n之间，假设只有一个重复数字，找出这个重复数。​：给定一个数组，将所有0移动到数组的末尾，同时保持非零元素的相对顺序。​：设计一个数据结构，包含一个单词字典，判断给定单词的缩写是否唯一。]]></description><category></category></item><item><title><![CDATA[LeetCode 271-280 题详细解析]]></title><link>https://blog.youkuaiyun.com/frxnance/article/details/153189252</link><guid>https://blog.youkuaiyun.com/frxnance/article/details/153189252</guid><author>frxnance</author><pubDate>Mon, 13 Oct 2025 12:37:51 +0800</pubDate><description><![CDATA[使用长度前缀编码方法：对于每个字符串，先记录其长度，然后加上分隔符，最后是字符串内容。​：将数组重新排列成nums[0] <= nums[1] >= nums[2] <= nums[3]...的形式。先排序，然后从后向前遍历，找到最大的h使得citations[i] >= h。如果当前栅栏与前一个颜色不同：dp[i] = dp[i-1] * (k-1)如果当前栅栏与前一个颜色相同：dp[i] = dp[i-2] * (k-1)​：有n个栅栏，k种颜色，要求最多连续两个栅栏颜色相同，求涂色方案数。]]></description><category></category></item><item><title><![CDATA[LeetCode 261-270 题详细解析]]></title><link>https://blog.youkuaiyun.com/frxnance/article/details/153188782</link><guid>https://blog.youkuaiyun.com/frxnance/article/details/153188782</guid><author>frxnance</author><pubDate>Mon, 13 Oct 2025 12:29:26 +0800</pubDate><description><![CDATA[​：有一排房子，每个房子可以用k种颜色中的一种来粉刷，每个房子粉刷成不同颜色的花费不同。​：给定编号从 0 到 n-1 的 n 个节点和一个无向边列表，判断这些节点能否形成一棵有效的树。动态规划优化，记录前一个房子的最小花费和次小花费，避免每次都要遍历所有颜色。​：给定一个包含[0, n]中n个数的数组，找出数组中缺失的那个数字。方法1：数学公式 - 计算0到n的和，减去数组中所有数的和。​：给定一个按外星字典序排序的单词列表，推断出字母的顺序。​：找出第n个丑数（只包含质因数2、3、5的正整数）。]]></description><category></category></item><item><title><![CDATA[LeetCode 251-260 题详细解析]]></title><link>https://blog.youkuaiyun.com/frxnance/article/details/153187202</link><guid>https://blog.youkuaiyun.com/frxnance/article/details/153187202</guid><author>frxnance</author><pubDate>Mon, 13 Oct 2025 11:50:44 +0800</pubDate><description><![CDATA[状态转移：dp[i][j] = costs[i][j] + min(dp[i-1][k])，其中k ≠ j。​：设计一个迭代器，实现一个二维向量的展开，使其能够按顺序遍历二维向量中的所有元素。遍历会议，如果当前会议开始时间大于等于堆顶结束时间，可以复用会议室。​：给定一个会议时间安排的数组，判断一个人是否能够参加所有会议。动态规划：dp[i][j]表示第i个房子刷第j种颜色的最小成本。检查每个会议的开始时间是否大于等于前一个会议的结束时间。​：粉刷一排房子，相邻房子不能同色，求最小成本。]]></description><category></category></item><item><title><![CDATA[LeetCode 241-250 题详细解析]]></title><link>https://blog.youkuaiyun.com/frxnance/article/details/153186932</link><guid>https://blog.youkuaiyun.com/frxnance/article/details/153186932</guid><author>frxnance</author><pubDate>Mon, 13 Oct 2025 11:45:35 +0800</pubDate><description><![CDATA[​​：给定一个含有数字和运算符的字符串，为表达式添加括号，改变其运算优先级以求出不同的结果。你需要给出所有可能的组合的结果。​​​：中等​​：使用分治法和记忆化搜索。遍历字符串，当遇到运算符时，将表达式分成左右两部分，分别递归计算左右两部分的所有可能结果，然后根据当前运算符组合结果。​​：O(Catalan(n))，最坏情况是指数级​​：O(n²)，用于存储中间结果。]]></description><category></category></item><item><title><![CDATA[LeetCode 231-240 题详细解析]]></title><link>https://blog.youkuaiyun.com/frxnance/article/details/153185538</link><guid>https://blog.youkuaiyun.com/frxnance/article/details/153185538</guid><author>frxnance</author><pubDate>Mon, 13 Oct 2025 11:22:42 +0800</pubDate><description><![CDATA[​：给你一个整数数组 nums，有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。​：给你一个整数数组 nums，返回数组 answer ，其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。​：编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。​：给定一个整数 n，计算所有小于等于 n 的非负整数中数字 1 出现的个数。2的幂次方的二进制表示只有一个1，其他位都是0。​：有一个单链表的节点，请编写一个函数删除该节点。]]></description><category></category></item><item><title><![CDATA[LeetCode 221-230 题详细解析]]></title><link>https://blog.youkuaiyun.com/frxnance/article/details/153183937</link><guid>https://blog.youkuaiyun.com/frxnance/article/details/153183937</guid><author>frxnance</author><pubDate>Mon, 13 Oct 2025 10:52:00 +0800</pubDate><description><![CDATA[​：给你二维平面上两个由直线构成且边平行于坐标轴的矩形，请你计算并返回两个矩形覆盖的总面积。pop：将主队列中除最后一个元素外的所有元素移到辅助队列，弹出最后一个元素，然后交换队列。​：给定一个大小为 n 的整数数组，找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。​：O(log²n)，每次递归计算高度O(logn)，递归深度O(logn)，请你实现一个基本计算器来计算并返回它的值。​：实现一个基本的计算器来计算一个简单的字符串表达式 s 的值。​：请你仅使用两个队列实现一个后入先出（LIFO）的栈。]]></description><category></category></item><item><title><![CDATA[LeetCode 211-220 题详细解析]]></title><link>https://blog.youkuaiyun.com/frxnance/article/details/153183615</link><guid>https://blog.youkuaiyun.com/frxnance/article/details/153183615</guid><author>frxnance</author><pubDate>Mon, 13 Oct 2025 10:45:24 +0800</pubDate><description><![CDATA[搜索单词：最坏情况O(26^L)，但实际中由于单词长度有限且不会全是'.'，效率可接受。​：找出所有k个数字的组合，数字从1-9中选择，和为n，每个数字最多使用一次。​：O(M×N×4×3^(L-1))，其中M、N为网格大小，L为单词最大长度。​：O(N×L)，其中N为单词数，L为平均单词长度，主要用于存储字典树节点。​：O(K×L)，其中K为单词数，L为单词最大长度，主要用于存储字典树。​：平均O(n)，最坏O(n²)，但随机化后期望为O(n)添加单词：O(L)，其中L为单词长度，需要遍历每个字符。]]></description><category></category></item><item><title><![CDATA[LeetCode 201-210 题详细解析]]></title><link>https://blog.youkuaiyun.com/frxnance/article/details/153182081</link><guid>https://blog.youkuaiyun.com/frxnance/article/details/153182081</guid><author>frxnance</author><pubDate>Mon, 13 Oct 2025 10:19:58 +0800</pubDate><description><![CDATA[这道题的关键观察是：对于连续数字的按位与操作，结果实际上是 left 和 right 的公共二进制前缀。因为从 left 到 right 的连续数字中，二进制表示的每一位都会经历从 0 到 1 的变化，只有那些在 left 和 right 中保持不变的位才会在结果中为 1。​：给定两个整数 left 和 right，返回区间 [left, right] 内所有数字按位与的结果。Trie 树的每个节点包含子节点数组和结束标志，支持高效的前缀查询。​：返回学习所有课程的顺序，如果不可能则返回空数组。]]></description><category></category></item><item><title><![CDATA[LeetCode 191-200 题详解]]></title><link>https://blog.youkuaiyun.com/frxnance/article/details/152736926</link><guid>https://blog.youkuaiyun.com/frxnance/article/details/152736926</guid><author>frxnance</author><pubDate>Wed, 08 Oct 2025 21:52:32 +0800</pubDate><description><![CDATA[​：你是一个专业的小偷，计划偷窃沿街的房屋。每间房内都藏有一定的现金，影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统，如果两间相邻的房屋在同一晚上被小偷闯入，系统会自动报警。​：编写一个函数，输入是一个无符号整数（以二进制串的形式），返回其二进制表达式中数字位数为 '1' 的个数（也被称为汉明重量）。​：给定一个二叉树的根节点root，想象自己站在它的右侧，按照从顶部到底部的顺序，返回从右侧所能看到的节点值。​：给定一个包含电话号码列表的文件，编写一个bash脚本，打印所有有效的电话号码。]]></description><category></category></item><item><title><![CDATA[LeetCode 181-190 题详解]]></title><link>https://blog.youkuaiyun.com/frxnance/article/details/152736881</link><guid>https://blog.youkuaiyun.com/frxnance/article/details/152736881</guid><author>frxnance</author><pubDate>Wed, 08 Oct 2025 21:52:06 +0800</pubDate><description><![CDATA[​​​：简单​​：编写一个SQL查询，该查询可以获取收入超过他们经理的员工的姓名。​​：使用自连接将员工表与经理表连接比较员工的薪水与经理的薪水选择员工薪水大于经理薪水的记录​。]]></description><category></category></item><item><title><![CDATA[LeetCode 171-180 题详解]]></title><link>https://blog.youkuaiyun.com/frxnance/article/details/152736653</link><guid>https://blog.youkuaiyun.com/frxnance/article/details/152736653</guid><author>frxnance</author><pubDate>Wed, 08 Oct 2025 21:48:05 +0800</pubDate><description><![CDATA[​：编写一个SQL查询，满足条件：无论 person 是否有地址信息，都需要基于上述两表提供 person 的以下信息：FirstName, LastName, City, State。状态转移方程：dp[i][j] = max(1, min(dp[i+1][j], dp[i][j+1]) - dungeon[i][j])​：编写一个SQL查询，获取Employee表中第n高的薪水。​：给定一组非负整数nums，重新排列每个数的顺序（每个数不可拆分）使之组成一个最大的整数。​：给定一个整数 n，返回 n!]]></description><category></category></item><item><title><![CDATA[LeetCode 161-170 题详解]]></title><link>https://blog.youkuaiyun.com/frxnance/article/details/152736555</link><guid>https://blog.youkuaiyun.com/frxnance/article/details/152736555</guid><author>frxnance</author><pubDate>Wed, 08 Oct 2025 21:46:53 +0800</pubDate><description><![CDATA[给你一个整数数组 nums，找到峰值元素并返回其索引。​：给定两个整数，分别表示分数的分子 numerator 和分母 denominator，以字符串形式返回小数。​：给定一个排序的整数数组 nums，其中元素的范围在闭区间 [lower, upper] 内，返回缺失的区间列表。​：给定两个字符串 s 和 t，判断它们是否只相差一个编辑操作（插入一个字符、删除一个字符或替换一个字符）。​：给定一个无序的数组，找出数组在排序之后，相邻元素之间最大的差值。​：给定一个大小为 n 的数组，找到其中的多数元素。]]></description><category></category></item><item><title><![CDATA[LeetCode 151-160 题详解]]></title><link>https://blog.youkuaiyun.com/frxnance/article/details/152729775</link><guid>https://blog.youkuaiyun.com/frxnance/article/details/152729775</guid><author>frxnance</author><pubDate>Wed, 08 Oct 2025 18:13:50 +0800</pubDate><description><![CDATA[给你一个元素值互不相同的数组 nums，它原来是一个升序排列的数组，并按上述情形进行了多次旋转。给你一个可能存在重复元素值的数组 nums，它原来是一个升序排列的数组，并按上述情形进行了多次旋转。​：给定一个二叉树，其中所有的右节点要么是具有兄弟节点（拥有相同父节点的左节点）的叶节点，要么为空。​：给你一个整数数组 nums，请你找出数组中乘积最大的连续子数组（该子数组中至少包含一个数字），并返回该子数组所对应的乘积。​：设计一个支持 push，pop，top 操作，并能在常数时间内检索到最小元素的栈。]]></description><category></category></item><item><title><![CDATA[LeetCode 151-160 题详解]]></title><link>https://blog.youkuaiyun.com/frxnance/article/details/152729718</link><guid>https://blog.youkuaiyun.com/frxnance/article/details/152729718</guid><author>frxnance</author><pubDate>Wed, 08 Oct 2025 18:10:44 +0800</pubDate><description><![CDATA[给你一个元素值互不相同的数组 nums，它原来是一个升序排列的数组，并按上述情形进行了多次旋转。给你一个可能存在重复元素值的数组 nums，它原来是一个升序排列的数组，并按上述情形进行了多次旋转。​：给定一个二叉树，其中所有的右节点要么是具有兄弟节点（拥有相同父节点的左节点）的叶节点，要么为空。​：给你一个整数数组 nums，请你找出数组中乘积最大的连续子数组（该子数组中至少包含一个数字），并返回该子数组所对应的乘积。​：设计一个支持 push，pop，top 操作，并能在常数时间内检索到最小元素的栈。]]></description><category></category></item><item><title><![CDATA[LeetCode 141-150 题详解]]></title><link>https://blog.youkuaiyun.com/frxnance/article/details/152729184</link><guid>https://blog.youkuaiyun.com/frxnance/article/details/152729184</guid><author>frxnance</author><pubDate>Wed, 08 Oct 2025 17:45:48 +0800</pubDate><description><![CDATA[​：给定一个单链表 L 的头节点 head，单链表 L 表示为：L0 → L1 → …→ Ln-1 → Ln。​：给定一个链表的头节点 head，返回链表开始入环的第一个节点。请将其重新排列为：L0 → Ln → L1 → Ln-1 → L2 → Ln-2 → …​：给你链表的头结点 head，请将其按升序排列并返回排序后的链表。​：给你二叉树的根节点 root，返回它节点值的前序遍历。​：给你二叉树的根节点 root，返回它节点值的后序遍历。​：给你一个链表的头节点 head，判断链表中是否有环。]]></description><category></category></item></channel></rss>