<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Lukegood的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Lukegood</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Lukegood]]></copyright><item><title><![CDATA[LeetCode 第91题：解码方法]]></title><link>https://blog.youkuaiyun.com/Lukegood/article/details/149139703</link><guid>https://blog.youkuaiyun.com/Lukegood/article/details/149139703</guid><author>Lukegood</author><pubDate>Sat, 05 Jul 2025 17:46:28 +0800</pubDate><description><![CDATA[给你一个只含数字的非空字符串s，请计算并返回解码方法的总数。如果没有合法的方法解码整个字符串，返回0。要特别注意，11106可以映射为AAJF或KJF。一条包含字母A-Z的消息通过以下映射进行了编码。动态规划，分为一个字符和两个字符两种情况。06不是一个合法编码。]]></description><category></category></item><item><title><![CDATA[LeetCode 第89题：格雷编码]]></title><link>https://blog.youkuaiyun.com/Lukegood/article/details/149138524</link><guid>https://blog.youkuaiyun.com/Lukegood/article/details/149138524</guid><author>Lukegood</author><pubDate>Sat, 05 Jul 2025 16:32:08 +0800</pubDate><description><![CDATA[规则法，根据上述定理可得格雷编码的规律，第i个格雷编码可以表示为（i>>1）^i。]]></description><category></category></item><item><title><![CDATA[LeetCode 第82题：删除排序链表中的重复元素Ⅱ]]></title><link>https://blog.youkuaiyun.com/Lukegood/article/details/149102727</link><guid>https://blog.youkuaiyun.com/Lukegood/article/details/149102727</guid><author>Lukegood</author><pubDate>Thu, 03 Jul 2025 21:45:37 +0800</pubDate><description><![CDATA[给定一个已排序的链表的头head，删除原始链表中所有重复数字的节点，只留下不同的数字，返回已排序的链表。]]></description><category></category></item><item><title><![CDATA[第81题：搜索旋转排序数组Ⅱ]]></title><link>https://blog.youkuaiyun.com/Lukegood/article/details/149032196</link><guid>https://blog.youkuaiyun.com/Lukegood/article/details/149032196</guid><author>Lukegood</author><pubDate>Mon, 30 Jun 2025 22:02:24 +0800</pubDate><description><![CDATA[在传递给函数之前，nums在预先未知的某个下标k(0<=k<nums.length)上进行了旋转，使数组变为nums[k]，nums[k+1],......nums[n-1]，nums[0]，nums[1],......nums[k-1]（下标从0开始计数）。给你旋转后的数组nums和一个整数target，请你编写一个函数来判断给定的目标值是否存在于数组中，如果nums中存在这个目标值target，则返回true，否则返回false。已知存在一个按非降序排列的整数数组nums，数组中的值不必互不相同。]]></description><category></category></item><item><title><![CDATA[LeetCode 第80题 删除有序数组中的重复项Ⅱ]]></title><link>https://blog.youkuaiyun.com/Lukegood/article/details/149003767</link><guid>https://blog.youkuaiyun.com/Lukegood/article/details/149003767</guid><author>Lukegood</author><pubDate>Sun, 29 Jun 2025 21:56:46 +0800</pubDate><description><![CDATA[摘要：题目要求对有序数组原地去重，保留最多两个重复元素。使用双指针方法，慢指针slow跟踪处理位置，快指针fast遍历数组。当nums[slow-2]≠nums[fast]时保留元素。时间复杂度O(n)，空间复杂度O(1)。示例：[1,1,1,2,2,3]处理后长度为5，数组变为[1,1,2,2,3]。该方法高效地修改原数组，适用于升序排列的输入。]]></description><category></category></item><item><title><![CDATA[LeetCode 第78题：子集]]></title><link>https://blog.youkuaiyun.com/Lukegood/article/details/148670518</link><guid>https://blog.youkuaiyun.com/Lukegood/article/details/148670518</guid><author>Lukegood</author><pubDate>Sun, 15 Jun 2025 15:32:11 +0800</pubDate><description><![CDATA[迭代法实现子集枚举：记录序列中元素的总数为n，原序列中的每个数字ai的状态可能有两种，在子集中和不在子集中。用1代表在子集中，0代表不在子集中。每一个子集可以对应一个长度为n的0/1序列，第i位表示ai是否在子集中。枚举mask∈【0，2^n-1】,mask的二进制表示一个0/1序列，按照这个0/1序列在原集合当中取数。给你一个整数数组nums，数组中的元素互不相同。返回该数组所有可能的子集。0/1 序列    子集    0/1 序列对应的二进制数。子集数量一共是2^n个，包括空集和本身集合。]]></description><category></category></item><item><title><![CDATA[LeetCode 第77题：组合]]></title><link>https://blog.youkuaiyun.com/Lukegood/article/details/148669922</link><guid>https://blog.youkuaiyun.com/Lukegood/article/details/148669922</guid><author>Lukegood</author><pubDate>Sun, 15 Jun 2025 14:40:40 +0800</pubDate><description><![CDATA[给定两个整数n和k，返回范围[1,n]中所有可能的k个数的组合。你可以按任何顺序返回答案。]]></description><category></category></item><item><title><![CDATA[LeetCode 第75题：颜色分类]]></title><link>https://blog.youkuaiyun.com/Lukegood/article/details/148669464</link><guid>https://blog.youkuaiyun.com/Lukegood/article/details/148669464</guid><author>Lukegood</author><pubDate>Sun, 15 Jun 2025 14:11:33 +0800</pubDate><description><![CDATA[给定一个包含红色、白色和蓝色、共n个元素的数组nums，原地对它们进行排序，使得相同颜色的元素相邻，并按照红色、白色、蓝色顺序排序。第二次遍历中，将数组中所有的1交换到头部的0之后。时间复杂度：O（n）,其中n是数组nums的长度。在第一次遍历中，将数组中所有的0交换到数组头部。时间复杂度：O（n）,其中n是数组nums的长度。时间复杂度：O（n），其中n是数组nums的长度。使用整数0、1和2分布表示红色、白色和蓝色。空间复杂度：O（1）空间复杂度：O（1）空间复杂度：O（1）]]></description><category></category></item><item><title><![CDATA[LeetCode 第74题：搜索二维矩阵]]></title><link>https://blog.youkuaiyun.com/Lukegood/article/details/148654489</link><guid>https://blog.youkuaiyun.com/Lukegood/article/details/148654489</guid><author>Lukegood</author><pubDate>Sat, 14 Jun 2025 16:45:24 +0800</pubDate><description><![CDATA[若将矩阵每一行拼接在上一行的末尾，则会得到一个升序数组，可以在该数组上二分找到目标元素。给你一个整数target，如果target在矩阵中，返回true;否则返回false。给你一个满足下述两条属性的m*n整数矩阵。]]></description><category></category></item><item><title><![CDATA[LeetCode 第73题：矩阵置零]]></title><link>https://blog.youkuaiyun.com/Lukegood/article/details/148654180</link><guid>https://blog.youkuaiyun.com/Lukegood/article/details/148654180</guid><author>Lukegood</author><pubDate>Sat, 14 Jun 2025 16:20:06 +0800</pubDate><description><![CDATA[中，一个原地算法（in-place algorithm）是一种使用小的，固定数量的额外之空间来转换资料的算法。当算法执行时，输入的资料通常会被要输出的部分覆盖掉。不是原地算法有时候称为非原地（not-in-place）或不得其所（out-of-place）。空间复杂度：O(m+n)，其中 m 是矩阵的行数，n 是矩阵的列数。给定一个m*n的矩阵，如果一个元素为0，则将其所在行和列的所有元素都设为0，请使用原地算法。时间复杂度：O(mn)，其中 m 是矩阵的行数，n 是矩阵的列数。]]></description><category></category></item><item><title><![CDATA[LeetCode 第72题：编辑距离（巧妙的动态规划方法）]]></title><link>https://blog.youkuaiyun.com/Lukegood/article/details/148653643</link><guid>https://blog.youkuaiyun.com/Lukegood/article/details/148653643</guid><author>Lukegood</author><pubDate>Sat, 14 Jun 2025 16:00:44 +0800</pubDate><description><![CDATA[2.自顶向下的递推法，从终点状态开始调用递归，扫描所有必需的状态空间，只需要填一部分的动态规划表，有些不必要的状态可以直接避免计算。记忆化递归的平均时间复杂度O（M*N）,但是时间常数项比递推填表的要小一半，速度更快，极端情况下，记忆化递归的时间复杂度可以将为O（N）但是空间复杂度不能优化，为O（M*N）。1.自底向上的递推法，从起点状态开始扫描，输出值为终点状态值，需要填整个动态规划状态表，尽管不是所有的状态都对终点状态的计算有直接贡献，有些状态其实没有必要计算。]]></description><category></category></item><item><title><![CDATA[LeetCode 第71题 简化路径(繁琐)]]></title><link>https://blog.youkuaiyun.com/Lukegood/article/details/148652303</link><guid>https://blog.youkuaiyun.com/Lukegood/article/details/148652303</guid><author>Lukegood</author><pubDate>Sat, 14 Jun 2025 14:43:08 +0800</pubDate><description><![CDATA[对于【两个点】或者【目录名】，我们则可以用一个栈来维护路径中的每一个目录名。当我们遇到【两个点】时，需要将目录切换到上一级，因此只要栈不为空，就弹出栈顶的目录。栈：首先将给定的字符串path根据 / 分割成一个由若干字符串组成的列表，记为names。对于【空字符串】以及【一个点】，实际上无需对他们进行处理，因为【空字符串】没有任何含义，而【一个点】表示当前目录本身，无需切换目录。给你一个字符串path，表示指向某一文件或目录的Unix风格 绝对路径（以‘/’开头），请你将其转化为更加简洁的规范路径。]]></description><category></category></item><item><title><![CDATA[LeetCode 第64题 最小路径和]]></title><link>https://blog.youkuaiyun.com/Lukegood/article/details/148651956</link><guid>https://blog.youkuaiyun.com/Lukegood/article/details/148651956</guid><author>Lukegood</author><pubDate>Sat, 14 Jun 2025 14:00:35 +0800</pubDate><description><![CDATA[给定一个包含非负整数m*n网格grid，请找出一条从左上角到右下角的路径，使得路径上的数字总和为最小。说明：每次只能向下或者向右移动一步。]]></description><category></category></item><item><title><![CDATA[LeetCode 第62题~第63题路径问题]]></title><link>https://blog.youkuaiyun.com/Lukegood/article/details/148063575</link><guid>https://blog.youkuaiyun.com/Lukegood/article/details/148063575</guid><author>Lukegood</author><pubDate>Mon, 19 May 2025 15:33:23 +0800</pubDate><description><![CDATA[机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角（在下图中标记为 “Finish” ）。动态规划：dp[m][n]=dp[m-1][n]+dp[m][n-1]网格的左上角 （起始点在下图中标记为 “Start” ）。机器人每次只能向下或者向右移动一步。返回机器人能够到达右下角的不同路径数量。机器人的移动路径中不能包含。网格中的障碍物和空位置分别用。问总共有多少条不同的路径？测试用例保证答案小于等于。]]></description><category></category></item><item><title><![CDATA[LeetCode 第61题：旋转链表]]></title><link>https://blog.youkuaiyun.com/Lukegood/article/details/148062285</link><guid>https://blog.youkuaiyun.com/Lukegood/article/details/148062285</guid><author>Lukegood</author><pubDate>Mon, 19 May 2025 14:47:39 +0800</pubDate><description><![CDATA[给你一个链表的头节点head，旋转链表，将链表每个节点向右移动k个位置。]]></description><category></category></item><item><title><![CDATA[LeetCode 第59题：螺旋矩阵Ⅱ]]></title><link>https://blog.youkuaiyun.com/Lukegood/article/details/147305617</link><guid>https://blog.youkuaiyun.com/Lukegood/article/details/147305617</guid><author>Lukegood</author><pubDate>Thu, 17 Apr 2025 15:09:43 +0800</pubDate><description><![CDATA[给你一个正整数n，生成一个包含1到n*n所有元素，且元素按顺时针螺旋排列的n*n正方形矩阵matrix。]]></description><category></category></item><item><title><![CDATA[LeetCode 第54~55题]]></title><link>https://blog.youkuaiyun.com/Lukegood/article/details/147275444</link><guid>https://blog.youkuaiyun.com/Lukegood/article/details/147275444</guid><author>Lukegood</author><pubDate>Wed, 16 Apr 2025 14:29:16 +0800</pubDate><description><![CDATA[给你一个非负整数数组nums，你最初位于数组的第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标，如果可以，返回true，否则返回false。给你一个m行n列的矩阵matrix，请你按照顺时针螺旋顺序，返回矩阵中的所有元素。]]></description><category></category></item><item><title><![CDATA[LeetCode 第53题：最大子数组和]]></title><link>https://blog.youkuaiyun.com/Lukegood/article/details/147070504</link><guid>https://blog.youkuaiyun.com/Lukegood/article/details/147070504</guid><author>Lukegood</author><pubDate>Tue, 08 Apr 2025 16:08:39 +0800</pubDate><description><![CDATA[给你一个整数数组nums，请你找出一个具有最大和的连续子数组（子数组最少包含一个元素），返回其最大和。子数组是数组中的一个连续部分。]]></description><category></category></item><item><title><![CDATA[LeetCode 第50题：Pow(x,n)]]></title><link>https://blog.youkuaiyun.com/Lukegood/article/details/147069281</link><guid>https://blog.youkuaiyun.com/Lukegood/article/details/147069281</guid><author>Lukegood</author><pubDate>Tue, 08 Apr 2025 15:46:54 +0800</pubDate><description><![CDATA[如何快速计算x的13次幂，13=1+4+8，13的二进制为1101，遇到1就乘以x的对应次幂。遍历<样例通过，但是部分测试样例会超时，294 / 307 个通过的测试用例>实现pow(x,n)，即计算x的整数n次幂函数（即x^n）。]]></description><category></category></item><item><title><![CDATA[LeetCode 第47题：旋转数组]]></title><link>https://blog.youkuaiyun.com/Lukegood/article/details/147065858</link><guid>https://blog.youkuaiyun.com/Lukegood/article/details/147065858</guid><author>Lukegood</author><pubDate>Tue, 08 Apr 2025 14:14:59 +0800</pubDate><description><![CDATA[matrix[row][col]经过水平轴翻转变为matrix[n-row-1][col],再经过主对角线翻转得到matrix[col][n-row-1]。对于矩阵中的元素matrix[row][col]在旋转后，它的新位置为matrix[col][n-row-1]。matrix[row][col]经过水平轴翻转变为matrix[n-row-1][col]matrix[row][col]经过主对角线翻转变为matrix[col][row]旋转图像，这意味着你需要直接修改输入的二维矩阵。]]></description><category></category></item></channel></rss>