<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[muke668的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/muke668</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; muke668]]></copyright><item><title><![CDATA[101.对称二叉树解析]]></title><link>https://blog.youkuaiyun.com/muke668/article/details/151801154</link><guid>https://blog.youkuaiyun.com/muke668/article/details/151801154</guid><author>muke668</author><pubDate>Wed, 17 Sep 2025 19:21:34 +0800</pubDate><description><![CDATA[对称二叉树是一种特殊的二叉树结构，其左子树和右子树在结构上完全镜像对称，且对应位置的节点值相等。对称二叉树的核心特点：镜像对称：左子树是右子树的镜像值对应相等：镜像位置的节点值必须相同结构一致：左右子树的形状必须完全对应递归性质：每个子树也必须满足对称性关键要点总结：递归解法：最自然直观，通过辅助函数比较镜像子树迭代解法：使用队列或栈显式管理比较过程，避免递归栈溢出核心思想：对称性转化为两个子树的镜像对称性判断比较策略：左子树的左与右子树的右比较，左子树的右与右子树的左比较边界处理。]]></description><category></category></item><item><title><![CDATA[226.翻转二叉树解析]]></title><link>https://blog.youkuaiyun.com/muke668/article/details/151800280</link><guid>https://blog.youkuaiyun.com/muke668/article/details/151800280</guid><author>muke668</author><pubDate>Wed, 17 Sep 2025 18:19:41 +0800</pubDate><description><![CDATA[二叉树翻转是一种树结构变换操作，通过交换每个节点的左右子树来实现整棵树的镜像翻转。二叉树翻转的核心特点：镜像对称：翻转后的树是原树的镜像递归结构：每个节点都需要交换其左右子树保持结构：树的形状保持不变，只是左右对调全局变换：从根节点开始，影响整棵树的结构树结构的镜像操作递归算法的经典练习树遍历算法的基础应用关键要点总结：递归解法：代码简洁，逻辑清晰，是首选方案栈迭代：模拟递归过程，深度优先遍历队列迭代：层序遍历，适合特定场景需求核心操作。]]></description><category></category></item><item><title><![CDATA[239.滑动窗口最大值分析]]></title><link>https://blog.youkuaiyun.com/muke668/article/details/151716299</link><guid>https://blog.youkuaiyun.com/muke668/article/details/151716299</guid><author>muke668</author><pubDate>Mon, 15 Sep 2025 14:26:06 +0800</pubDate><description><![CDATA[滑动窗口是一种算法思想，通过维护一个固定大小的窗口在数组上滑动，用于解决数组或字符串的子元素问题。滑动窗口的核心特点：固定窗口大小：窗口大小在整个过程中保持不变线性移动：窗口每次只移动一个位置局部最优：在每个窗口位置都需要求解一个局部问题全局结果：将所有局部结果组合成最终答案避免重复计算，提高算法效率将暴力解法的二重循环优化为单次遍历适合处理连续子数组/子字符串问题滑动窗口最大值问题完美展示了单调队列数据结构的威力，通过巧妙的设计将朴素算法的O(nk)时间复杂度优化到O(n)]]></description><category></category></item><item><title><![CDATA[C++ Lambda表达式学习]]></title><link>https://blog.youkuaiyun.com/muke668/article/details/151654264</link><guid>https://blog.youkuaiyun.com/muke668/article/details/151654264</guid><author>muke668</author><pubDate>Sat, 13 Sep 2025 16:49:04 +0800</pubDate><description><![CDATA[Lambda是对象，不是函数：理解这一点有助于理解其行为和限制捕获决定成员：捕获列表定义了Lambda对象的数据成员时机很重要：值捕获在创建时发生，引用捕获在调用时解析生命周期管理：这是使用Lambda时最容易出错的地方。]]></description><category></category></item><item><title><![CDATA[右值引用与移动语义]]></title><link>https://blog.youkuaiyun.com/muke668/article/details/151652773</link><guid>https://blog.youkuaiyun.com/muke668/article/details/151652773</guid><author>muke668</author><pubDate>Sat, 13 Sep 2025 15:59:52 +0800</pubDate><description><![CDATA[左值(lvalue)：具有持久性身份标识的表达式，可以取地址右值(rvalue)：临时性表达式，即将被销毁，无法取地址右值引用和移动语义是C++11最重要的特性之一显著提升性能：避免不必要的深拷贝实现完美转发：在模板中保持参数的值类别支持资源转移：实现高效的所有权语义向后兼容：不破坏现有代码通过正确使用移动语义，可以让程序在处理大对象时获得显著的性能提升。]]></description><category></category></item><item><title><![CDATA[150. 逆波兰表达式求值]]></title><link>https://blog.youkuaiyun.com/muke668/article/details/151651660</link><guid>https://blog.youkuaiyun.com/muke668/article/details/151651660</guid><author>muke668</author><pubDate>Sat, 13 Sep 2025 15:07:32 +0800</pubDate><description><![CDATA[逆波兰表达式是一种后缀表达式，所谓后缀就是指算符写在操作数的后面。平常使用的算式则是一种中缀表达式，如。该式的逆波兰表达式写法为。去掉括号后表达式无歧义，上式即便写成也可以依据次序计算出正确结果。适合用栈操作运算：遇到数字则入栈；遇到算符则取出栈顶两个数字进行计算，并将结果压入栈中。]]></description><category></category></item><item><title><![CDATA[删除字符串中的所有相邻重复项(leetcode1047)]]></title><link>https://blog.youkuaiyun.com/muke668/article/details/151650537</link><guid>https://blog.youkuaiyun.com/muke668/article/details/151650537</guid><author>muke668</author><pubDate>Sat, 13 Sep 2025 14:09:16 +0800</pubDate><description><![CDATA[删除相邻重复项的核心在于识别和消除连续相同的字符对。这是一个典型的栈应用场景。在完成所有重复项删除操作后返回最终的字符串。，重复项删除操作会选择两个相邻且相同的字母，并删除它们。上反复执行重复项删除操作，直到无法继续删除。给出由小写字母组成的字符串。]]></description><category></category></item><item><title><![CDATA[有效的括号分析(leetcode20)]]></title><link>https://blog.youkuaiyun.com/muke668/article/details/151650157</link><guid>https://blog.youkuaiyun.com/muke668/article/details/151650157</guid><author>muke668</author><pubDate>Sat, 13 Sep 2025 13:47:36 +0800</pubDate><description><![CDATA[判断括号字符串是否有效的核心在于检查括号的配对和顺序。这是一个典型的栈应用场景。，判断字符串是否有效。]]></description><category></category></item><item><title><![CDATA[用队列实现栈详解(leetcode225)]]></title><link>https://blog.youkuaiyun.com/muke668/article/details/151647829</link><guid>https://blog.youkuaiyun.com/muke668/article/details/151647829</guid><author>muke668</author><pubDate>Sat, 13 Sep 2025 11:12:50 +0800</pubDate><description><![CDATA[使用一个队列，在每次 push 操作后，将新加入的元素通过循环操作移动到队列前端。请你仅使用两个队列实现一个后入先出（LIFO）的栈，并支持普通栈的全部四种操作（始终保持一个队列为空，另一个队列存储所有元素，通过两队列间的转移实现栈操作。你能否仅用一个队列来实现栈。]]></description><category></category></item><item><title><![CDATA[用栈实现队列(leetcode232)]]></title><link>https://blog.youkuaiyun.com/muke668/article/details/151646429</link><guid>https://blog.youkuaiyun.com/muke668/article/details/151646429</guid><author>muke668</author><pubDate>Sat, 13 Sep 2025 10:36:53 +0800</pubDate><description><![CDATA[请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作（你能否实现每个操作均摊时间复杂度为。，即使其中一个操作可能花费较长时间。个操作的总时间复杂度为。]]></description><category></category></item><item><title><![CDATA[反转字符串II解题思路(leetcode541)]]></title><link>https://blog.youkuaiyun.com/muke668/article/details/151439277</link><guid>https://blog.youkuaiyun.com/muke668/article/details/151439277</guid><author>muke668</author><pubDate>Wed, 10 Sep 2025 22:04:06 +0800</pubDate><description><![CDATA[从字符串开头算起，每计数至。]]></description><category></category></item><item><title><![CDATA[反转字符串解题思路(leetcode344)]]></title><link>https://blog.youkuaiyun.com/muke668/article/details/151434184</link><guid>https://blog.youkuaiyun.com/muke668/article/details/151434184</guid><author>muke668</author><pubDate>Wed, 10 Sep 2025 21:31:51 +0800</pubDate><description><![CDATA[编写一个函数，其作用是将输入的字符串反转过来。输入字符串以字符数组。]]></description><category></category></item><item><title><![CDATA[四数之和解题思路(LeetCode 18)]]></title><link>https://blog.youkuaiyun.com/muke668/article/details/151400588</link><guid>https://blog.youkuaiyun.com/muke668/article/details/151400588</guid><author>muke668</author><pubDate>Wed, 10 Sep 2025 12:35:46 +0800</pubDate><description><![CDATA[排序预处理：为双指针和去重奠定基础多层去重：防止重复四元组的关键剪枝优化：减少不必要的计算溢出处理：使用long long防止整数溢出双指针技巧：在有序数组中高效查找。]]></description><category></category></item><item><title><![CDATA[三数之和解题思路(leetcode15)]]></title><link>https://blog.youkuaiyun.com/muke668/article/details/151400571</link><guid>https://blog.youkuaiyun.com/muke668/article/details/151400571</guid><author>muke668</author><pubDate>Wed, 10 Sep 2025 12:34:56 +0800</pubDate><description><![CDATA[先排序，固定第一个数，然后用双指针在剩余数组中寻找两数之和等于目标值的组合。三层循环枚举所有可能的三元组，使用set去重。，判断是否存在三元组。]]></description><category></category></item><item><title><![CDATA[智能指针学习]]></title><link>https://blog.youkuaiyun.com/muke668/article/details/151368811</link><guid>https://blog.youkuaiyun.com/muke668/article/details/151368811</guid><author>muke668</author><pubDate>Tue, 09 Sep 2025 18:29:41 +0800</pubDate><description><![CDATA[shared_ptr不能直接将this指针返回shared_ptr，需要通过派生std::enable_shared_from_this类，并通过其方法shared_from_this来返回指针，原因是std::enable_shared_from_this类中有一个weak_ptr，这个weak_ptr用来观察this智能指针，调用shared_from_this()方法是，会调用内部这个weak_ptr的lock()方法，将所观察的shared_ptr返回。]]></description><category></category></item><item><title><![CDATA[赎金信(leetcode383)]]></title><link>https://blog.youkuaiyun.com/muke668/article/details/151368779</link><guid>https://blog.youkuaiyun.com/muke668/article/details/151368779</guid><author>muke668</author><pubDate>Tue, 09 Sep 2025 18:27:40 +0800</pubDate><description><![CDATA[由于只有小写字母，用大小为26的数组代替哈希表，空间效率更高。中每个字符的出现次数，然后遍历。]]></description><category></category></item><item><title><![CDATA[四数相加II(leetcode454)]]></title><link>https://blog.youkuaiyun.com/muke668/article/details/151368770</link><guid>https://blog.youkuaiyun.com/muke668/article/details/151368770</guid><author>muke668</author><pubDate>Tue, 09 Sep 2025 18:27:01 +0800</pubDate><description><![CDATA[数组长度都是 n，请你计算有多少个四元组。]]></description><category></category></item><item><title><![CDATA[两数之和(leetcode1)]]></title><link>https://blog.youkuaiyun.com/muke668/article/details/151368750</link><guid>https://blog.youkuaiyun.com/muke668/article/details/151368750</guid><author>muke668</author><pubDate>Tue, 09 Sep 2025 18:25:48 +0800</pubDate><description><![CDATA[用哈希表存储已访问过的元素及其索引，对于当前元素x，查找target-x是否在哈希表中。，请你在该数组中找出。]]></description><category></category></item><item><title><![CDATA[两个数组的交集解题(leetcode349)]]></title><link>https://blog.youkuaiyun.com/muke668/article/details/151358257</link><guid>https://blog.youkuaiyun.com/muke668/article/details/151358257</guid><author>muke668</author><pubDate>Tue, 09 Sep 2025 12:27:17 +0800</pubDate><description><![CDATA[给定两个数组 nums1 和 nums2，返回它们的交集。输出结果中的每个元素一定是。输出结果中的每个元素一定是。，我们可以不考虑输出结果的顺序。]]></description><category></category></item><item><title><![CDATA[有效的字母异位词解题思路(leetcode242)]]></title><link>https://blog.youkuaiyun.com/muke668/article/details/151333998</link><guid>https://blog.youkuaiyun.com/muke668/article/details/151333998</guid><author>muke668</author><pubDate>Mon, 08 Sep 2025 22:17:04 +0800</pubDate><description><![CDATA[判断两个字符串是否为字母异位词，本质上是判断两个字符串中每个字符的出现次数是否完全相同。首先判断两字符串长度是否相等，不等直接返回 false。：两个字符串包含相同的字母，但字母的排列顺序不同。比较两个字符串中每个字符的出现次数是否相同。统计每个字符在两个字符串中出现的次数。比较排序后的字符串是否相等。，编写一个函数来判断。将两个字符串分别排序。]]></description><category></category></item></channel></rss>