<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[L_halley的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/L_halley</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; L_halley]]></copyright><item><title><![CDATA[【Leetocode 236. 二叉树的最近公共祖先】]]></title><link>https://blog.youkuaiyun.com/L_halley/article/details/160615099</link><guid>https://blog.youkuaiyun.com/L_halley/article/details/160615099</guid><author>L_halley</author><pubDate>Wed, 29 Apr 2026 09:58:55 +0800</pubDate><description><![CDATA[当递归到某个节点，该节点符合（root == p or root == q）的条件就向上返回，这个节点是一个潜在的LCA候选者（Candidate）。候选者的意思是它有可能就是我们在找的LCA，也有可能并不是，但是和None不一样，它是有用的。本质上，该题目有三种情况，情况1:两个节点p,q分布于最深父公共祖先（LCA）的两侧。情况2:两个节点中的较浅节点p就为LCA，此时另一个节点q在该节点之下。情况2的对应：该Candidate向上返回时，一路畅通无阻（另一侧始终是None），一直返回到根节点。]]></description><category></category></item><item><title><![CDATA[【240. 搜索二维矩阵 II】]]></title><link>https://blog.youkuaiyun.com/L_halley/article/details/160245773</link><guid>https://blog.youkuaiyun.com/L_halley/article/details/160245773</guid><author>L_halley</author><pubDate>Fri, 17 Apr 2026 14:05:09 +0800</pubDate><description><![CDATA[*当前元素 matrix[i][j] 是第 i 行的最大值，同时也是第 j 列的最小值。它像一个天然的 “裁判”，将整个搜索空间清晰地一分为二。**同时，这个 “裁判” 还指出了一个搜索方向：向左会变小，向下会变大。因此，我们可以根据 target 与它的比较，做出唯一的决定。如果从左上角（最小值）开始，当 target 更大时，向右和向下两个方向都是未知的，我们无法立刻做出排除一整行或一整列的决定。排除法之所以有效，是因为它借助了矩阵的两个关键特性——每行从左到右递增，每列从上到下递增。]]></description><category></category></item><item><title><![CDATA[[回溯子集问题，去重篇]]]></title><link>https://blog.youkuaiyun.com/L_halley/article/details/155610194</link><guid>https://blog.youkuaiyun.com/L_halley/article/details/155610194</guid><author>L_halley</author><pubDate>Fri, 05 Dec 2025 15:13:24 +0800</pubDate><description><![CDATA[剪枝思路：1、同层去重，同树枝不去重：本题可以排序，排序后直接nums[i] ==nums[i- 1]来去重。]]></description><category></category></item><item><title><![CDATA[Leetcode 1110. 删点成林]]></title><link>https://blog.youkuaiyun.com/L_halley/article/details/155357630</link><guid>https://blog.youkuaiyun.com/L_halley/article/details/155357630</guid><author>L_halley</author><pubDate>Fri, 28 Nov 2025 16:39:42 +0800</pubDate><description><![CDATA[【代码】Leetcode 1110. 删点成林。]]></description><category></category></item><item><title><![CDATA[Leetcode 1026. 节点与其祖先之间的最大差值]]></title><link>https://blog.youkuaiyun.com/L_halley/article/details/155342575</link><guid>https://blog.youkuaiyun.com/L_halley/article/details/155342575</guid><author>L_halley</author><pubDate>Fri, 28 Nov 2025 10:13:41 +0800</pubDate><description><![CDATA[从上到下，先序遍历的方式，同时维护上面结点的最大值和最小值。当前路径的最大值和最小值通过参数传递。记录当前路径的最大值和最小值，到叶节点时则可得到，当前路径的最大差值。当前路径的最大值和最小值，通过函数返回值，从下往上传递。]]></description><category></category></item><item><title><![CDATA[Leetcode 739. 每日温度]]></title><link>https://blog.youkuaiyun.com/L_halley/article/details/154494567</link><guid>https://blog.youkuaiyun.com/L_halley/article/details/154494567</guid><author>L_halley</author><pubDate>Thu, 06 Nov 2025 17:41:07 +0800</pubDate><description><![CDATA[【代码】Leetcode 739. 每日温度。]]></description><category></category></item><item><title><![CDATA[Leetcode 1094. 拼车]]></title><link>https://blog.youkuaiyun.com/L_halley/article/details/154455688</link><guid>https://blog.youkuaiyun.com/L_halley/article/details/154455688</guid><author>L_halley</author><pubDate>Wed, 05 Nov 2025 21:21:42 +0800</pubDate><description><![CDATA[【代码】Leetcode 1094. 拼车。]]></description><category></category></item><item><title><![CDATA[1685. 有序数组中差绝对值之和]]></title><link>https://blog.youkuaiyun.com/L_halley/article/details/154441117</link><guid>https://blog.youkuaiyun.com/L_halley/article/details/154441117</guid><author>L_halley</author><pubDate>Wed, 05 Nov 2025 14:15:15 +0800</pubDate><description><![CDATA[与。]]></description><category></category></item><item><title><![CDATA[Leetcode 1052. 爱生气的书店老板]]></title><link>https://blog.youkuaiyun.com/L_halley/article/details/152928294</link><guid>https://blog.youkuaiyun.com/L_halley/article/details/152928294</guid><author>L_halley</author><pubDate>Fri, 10 Oct 2025 15:50:42 +0800</pubDate><description><![CDATA[1、计算顾客总量，顾客生气总数（不安抚情况下），最大安抚顾客数量，答案即为：顾客总量 - （顾客生气总数（不安抚情况下）- 最大安抚顾客数量）2、两数组相乘得到生气数组，让窗口内累加值最大（固定滑动窗口问题），则可以得到最大安抚顾客数量。]]></description><category></category></item><item><title><![CDATA[LeetCode 2090.半径为k的子数组]]></title><link>https://blog.youkuaiyun.com/L_halley/article/details/152806111</link><guid>https://blog.youkuaiyun.com/L_halley/article/details/152806111</guid><author>L_halley</author><pubDate>Thu, 09 Oct 2025 16:58:43 +0800</pubDate><description><![CDATA[i++) {//1.进入窗口 右窗口指针：i//2.窗口元素不足k个继续continue;//3.业务逻辑//4.离开窗口将左侧窗口元素剔除 左窗口指针：i - k + 1return [];]]></description><category></category></item><item><title><![CDATA[LeetCode 1170.比较字符串最小字母出现频次]]></title><link>https://blog.youkuaiyun.com/L_halley/article/details/151560934</link><guid>https://blog.youkuaiyun.com/L_halley/article/details/151560934</guid><author>L_halley</author><pubDate>Thu, 11 Sep 2025 09:33:05 +0800</pubDate><description><![CDATA[统计最小字母出现频次：利用map的的按"键"有序的特性，map.begin()->second,即为出现过的最小字母的频次查询f(queries[i]) < f(W)的词个数：其实就是查找f(queries[i]) 在排序后的f(W)中的位置；即为f(W) > target，满足的数目为word.size() - index。]]></description><category></category></item><item><title><![CDATA[LeetCode 34.在排序数组中查找元素的第一个和最后一个位置]]></title><link>https://blog.youkuaiyun.com/L_halley/article/details/151393699</link><guid>https://blog.youkuaiyun.com/L_halley/article/details/151393699</guid><author>L_halley</author><pubDate>Wed, 10 Sep 2025 09:21:16 +0800</pubDate><description><![CDATA[1、采用二分法的找第一个出现的数target为左边界，即nums[mid]>=target的第一个数；最后一个出现的数target为右边界，其实相对于找第一个出现的target+1的位置，再减1就是右边界。]]></description><category></category></item><item><title><![CDATA[Ubuntu 22.04 | 开机时提示piix4_smbus: Host SMBus controller not enabled]]></title><link>https://blog.youkuaiyun.com/L_halley/article/details/140831299</link><guid>https://blog.youkuaiyun.com/L_halley/article/details/140831299</guid><author>L_halley</author><pubDate>Wed, 31 Jul 2024 20:04:04 +0800</pubDate><description><![CDATA[【代码】Ubuntu 22.04 | 开机时提示piix4_smbus: Host SMBus controller not enabled。]]></description><category></category></item><item><title><![CDATA[Ubuntu settings中没有wired connected的解决方案]]></title><link>https://blog.youkuaiyun.com/L_halley/article/details/140797802</link><guid>https://blog.youkuaiyun.com/L_halley/article/details/140797802</guid><author>L_halley</author><pubDate>Tue, 30 Jul 2024 15:19:23 +0800</pubDate><description><![CDATA[【代码】Ubuntu settings中没有wired connected的解决方案。]]></description><category></category></item><item><title><![CDATA[vscode配置篇]]></title><link>https://blog.youkuaiyun.com/L_halley/article/details/140686074</link><guid>https://blog.youkuaiyun.com/L_halley/article/details/140686074</guid><author>L_halley</author><pubDate>Thu, 25 Jul 2024 11:58:14 +0800</pubDate><description><![CDATA[常用插件

Chinese (Simplified)		汉化
IntelliCode		自动补全
Python
C/C++


]]></description><category></category></item><item><title><![CDATA[计蒜客（dfs 数独）]]></title><link>https://blog.youkuaiyun.com/L_halley/article/details/123157253</link><guid>https://blog.youkuaiyun.com/L_halley/article/details/123157253</guid><author>L_halley</author><pubDate>Sat, 26 Feb 2022 22:10:37 +0800</pubDate><description><![CDATA[代码
#include&lt;bits/stdc++.h&gt;
using namespace std;
char s[10][10];
bool vx[10][10], vy[10][10], vv[10][10]
bool f;
void dfs(int x; int y){
    if(f){
        return;
    }
    if(x == 9){
        f = true;
        for(int i = 0; i &lt; 9; i++){
        ]]></description><category></category></item><item><title><![CDATA[计蒜客（dfs 等边三角形）]]></title><link>https://blog.youkuaiyun.com/L_halley/article/details/123156713</link><guid>https://blog.youkuaiyun.com/L_halley/article/details/123156713</guid><author>L_halley</author><pubDate>Sat, 26 Feb 2022 21:43:17 +0800</pubDate><description><![CDATA[代码
#include&lt;bits/stdc++.h&gt;
using namespace std;
int p[25];
int vis[25] = {0};
int n, sum;
bool f = false;
void dfs(int x, int s, int st){
    if(f){
        return;
    }
    if(x == 3){
        f = true;
        return;
    }
    if(s == sum / 3){
 ]]></description><category></category></item><item><title><![CDATA[计蒜客 蒜头君开公司（dfs）]]></title><link>https://blog.youkuaiyun.com/L_halley/article/details/121711722</link><guid>https://blog.youkuaiyun.com/L_halley/article/details/121711722</guid><author>L_halley</author><pubDate>Sat, 04 Dec 2021 10:52:59 +0800</pubDate><description><![CDATA[2020 年，蒜头君自己开了一家拥有 N 个员工的大公司。每天，蒜头君都要分配 N 项工作给他的员工，但是，由于能力的不同，每个人对处理相同工作所需要的时间有快有慢。众所周知，蒜头君是一个非常重视效率的人，他想知道该如何分配工作，才能使得完成所有工作的时间总和最小（每个员工只可以被分配到一个工作）。但是我们也都知道蒜头君不是一般的懒，所以蒜头君找到了你，请你拯救一下蒜头君吧！
输入格式
第一行输入一个整数 N，代表有 N 个员工，员工编号从 1 到 N。（1≤N≤10）
接着输入一个 N∗N的二维矩阵 ta]]></description><category></category></item><item><title><![CDATA[计蒜客家谱（dfs求直系后代数]]></title><link>https://blog.youkuaiyun.com/L_halley/article/details/121709172</link><guid>https://blog.youkuaiyun.com/L_halley/article/details/121709172</guid><author>L_halley</author><pubDate>Fri, 03 Dec 2021 23:30:17 +0800</pubDate><description><![CDATA[计蒜客家谱（dfs求直系后代数）
这一天蒜头君拿到了自己家的家谱，蒜头君便想知道，在自己家的家谱中，每位祖先有多少直系后代（直系后代包括他的孩子和他孩子的直系后代）。但是家族历史源远流长，家谱实在太庞大了，自己一个人完全数不过来。热心的你便自告奋勇帮蒜头君写一个程序，来统计每位祖先有多少直系后代。
输入格式
输入的第一行有一个整数 n(1≤n≤100000)，表示家谱中的总人数。
接下来读入 n−1 行，每行有两个整数 x(1≤x≤n), y(1≤y≤n)，表示 x 是 y 的父母。
输出格式
输出 n 行]]></description><category></category></item><item><title><![CDATA[踏青（dfs求矩阵中的块数）]]></title><link>https://blog.youkuaiyun.com/L_halley/article/details/121707068</link><guid>https://blog.youkuaiyun.com/L_halley/article/details/121707068</guid><author>L_halley</author><pubDate>Fri, 03 Dec 2021 21:21:57 +0800</pubDate><description><![CDATA[蒜头君和他的朋友周末相约去召唤师峡谷踏青。他们发现召唤师峡谷的地图是由一块一块格子组成的，有的格子上是草丛，有的是空地。草丛通过上下左右 444 个方向扩展其他草丛形成一片草地，任何一片草地中的格子都是草丛，并且所有格子之间都能通过上下左右连通。如果用’#‘代表草丛，’.'代表空地，下面的峡谷中有 222 片草地。
处在同一个草地的 222 个人可以相互看到，空地看不到草地里面的人。他们发现有一个朋友不见了，现在需要分头去找，每个人负责一片草地，蒜头君想知道他们至少需要多少人。
输入格式
第一行输入 n, ]]></description><category></category></item></channel></rss>