<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[m0_73523976的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/m0_73523976</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; m0_73523976]]></copyright><item><title><![CDATA[力扣刷题26]]></title><link>https://blog.youkuaiyun.com/m0_73523976/article/details/158574739</link><guid>https://blog.youkuaiyun.com/m0_73523976/article/details/158574739</guid><author>m0_73523976</author><pubDate>Mon, 02 Mar 2026 20:56:21 +0800</pubDate><description><![CDATA[4、再次遍历i = 0(num[0] = 2)，2 <= 7，path变成[2,2,2]，递归调用backtrack(0,[2,2,2],1)；6、回溯：path = [2,2]，回到上一层i = 1(num[1] = 3)，3 == 3，调用backtrack(1,[2,2,3],0)3、再次遍历i = 0(num[0] = 2)，2 <= 7，path变成[2,2]，递归调用backtrack(0,[2,2],3)；5、再次遍历i = 0(num[0] = 2)，2 > 1，触发剪枝，break。]]></description><category></category></item><item><title><![CDATA[力扣刷题25]]></title><link>https://blog.youkuaiyun.com/m0_73523976/article/details/158392281</link><guid>https://blog.youkuaiyun.com/m0_73523976/article/details/158392281</guid><author>m0_73523976</author><pubDate>Fri, 27 Feb 2026 21:38:09 +0800</pubDate><description><![CDATA[遍历current[1:]（即"1"）：取第一个字符c = "1"和char = "2"不同，先把前一组（count = 1,char = 2）加入next_str，next_str.append("1")，next_str.append("2")，next_str = ["1","2"]；遍历结束，处理最后一组字符（count = 1,char = 1）：next_str.append("1")，next_str.append("1")，next_str = ["1","2","1","1"]；]]></description><category></category></item><item><title><![CDATA[力扣刷题24]]></title><link>https://blog.youkuaiyun.com/m0_73523976/article/details/158347614</link><guid>https://blog.youkuaiyun.com/m0_73523976/article/details/158347614</guid><author>m0_73523976</author><pubDate>Tue, 24 Feb 2026 20:26:50 +0800</pubDate><description><![CDATA[3、第二次循环：left = 0，right = 2，mid = 1，nums[1] = 3，3 > 2，right = 1；4、第三次循环：left = 0，right = 1，mid = 0，nums[0] = 1，1 < 2，left = 1；i // 3：行号整除3，确定宫所在的行数，0 = 第0~2行，1 = 第3~5行，2 = 第6~8行；j // 3：列号整除3，确定宫所在的列数，0 = 第0~2列，1 = 第3~5列，2 = 第6~8列。1、初始：left = 0，right = 4；]]></description><category></category></item><item><title><![CDATA[力扣刷题23]]></title><link>https://blog.youkuaiyun.com/m0_73523976/article/details/158287128</link><guid>https://blog.youkuaiyun.com/m0_73523976/article/details/158287128</guid><author>m0_73523976</author><pubDate>Mon, 23 Feb 2026 21:32:03 +0800</pubDate><description><![CDATA[初始left = 0，right = 6，mid = 3，nums[mid] = 7 ,不等于target，nums[mid] > target， 0 < 7，且左半部分有序，但0不在此部分内，所以left = 4;此时，left =  4，right = 6，mid = 5，nums[mid] = 1，nums[mid] > target，0 < 1，且 右半部分有序，但0也不在此部分内，所以right = 4；根据题目提示，时间复杂度为O(logn)，所以我想到的还是二分法。按升序排列，数组中的值。]]></description><category></category></item><item><title><![CDATA[力扣刷题22]]></title><link>https://blog.youkuaiyun.com/m0_73523976/article/details/158261577</link><guid>https://blog.youkuaiyun.com/m0_73523976/article/details/158261577</guid><author>m0_73523976</author><pubDate>Sat, 21 Feb 2026 21:04:30 +0800</pubDate><description><![CDATA[要想写出这个题的代码，要先搞清楚什么是下一个排列，这就涉及到字典序了，有两种情况：（1）先比第一位，第一位大的，整体就大；nums[i] = nums[0] = 2，从后往前找，nums[2] = 1，不满足，nums[1] = 3，满足；这个i是我们要改动的关键位置，因为它后面的数是降序的，已经是最大的组合了，没法再变大，只能从i这里动手。当i = 1时，nums[1] = 3，nums[2] = 1，3 > 1，不满足；当i = 2时，nums[0] = 2，nums[1] = 3，2 < 3，满足；]]></description><category></category></item><item><title><![CDATA[力扣刷题21]]></title><link>https://blog.youkuaiyun.com/m0_73523976/article/details/158153930</link><guid>https://blog.youkuaiyun.com/m0_73523976/article/details/158153930</guid><author>m0_73523976</author><pubDate>Fri, 20 Feb 2026 11:58:00 +0800</pubDate><description><![CDATA[接下来是滑动窗口的处理，遍历起始位置范围0到word_len - 1，对每个偏移量i，维护一个窗口[left,right]，窗口内的单词长度均为word_len，用另一个字典current_freq统计当前窗口内的单词频率，当窗口内单词数量等于word_count时，检查current_freq与word_freq是否完全一致，如果一致，则记录起始索引。因为合法子串的起始位置，一定是0、1、...word_len - 1中的一个（比如单词长度为3，起始索引只能是0/1/2，否则切出来的不是完整单词）。]]></description><category></category></item><item><title><![CDATA[力扣刷题20]]></title><link>https://blog.youkuaiyun.com/m0_73523976/article/details/158152280</link><guid>https://blog.youkuaiyun.com/m0_73523976/article/details/158152280</guid><author>m0_73523976</author><pubDate>Tue, 17 Feb 2026 13:16:47 +0800</pubDate><description><![CDATA[利用快速减法，用倍增的方式（位运算，左移一位相当于乘以2），每次尽可能多地减去除数的倍数，而不是一次次减，这样可以大幅度提高效率；3、第二次循环，temp = 3，i = 1；首先要明确异或（XOR，符号^）在布尔逻辑中的规则，两个布尔值相同时，结果为False(0)，两个布尔值不同时，结果为True(1)。如果被除数和除数同正或同负（两个True或两个False），异或结果为False，sign = 1。如果被除数和除数为一正一负（一个True一个False），异或结果为True，sign = -1；]]></description><category></category></item><item><title><![CDATA[力扣刷题19]]></title><link>https://blog.youkuaiyun.com/m0_73523976/article/details/157931275</link><guid>https://blog.youkuaiyun.com/m0_73523976/article/details/157931275</guid><author>m0_73523976</author><pubDate>Sat, 14 Feb 2026 15:34:56 +0800</pubDate><description><![CDATA[暴力匹配失败时，会把needle总体后移一位，重新从头比较，而前缀函数可以做到：失败后不从头开始，直接跳到pi[j-1]的位置继续比较（j是当前匹配失败的位置）。3、直接把needle后移，让needle[2]对齐haystack[4]，继续比较，跳过了前两位"ab"的重复比较。1、匹配到haystack[4] = "a"，needle[4] = "c"时失败，前四位"abab"都匹配；真前缀是指不包含子串本身的前缀，比如"abc"的真前缀是"a"、"ab"；真后缀的定义也一样。]]></description><category></category></item><item><title><![CDATA[力扣刷题18]]></title><link>https://blog.youkuaiyun.com/m0_73523976/article/details/157843344</link><guid>https://blog.youkuaiyun.com/m0_73523976/article/details/157843344</guid><author>m0_73523976</author><pubDate>Sun, 08 Feb 2026 15:48:13 +0800</pubDate><description><![CDATA[先遍历链表，检查剩余节点是否足够 k 个，接着对满足条件的 k 个节点进行翻转操作，再将翻转后的组与前一组和后一组进行正确连接，重复上述过程，直到所有满足条件的组都被翻转，这就是我的思路。prev_group_start = 3，此时链表：0 -> 2 -> 1 -> 4 -> 3 -> 5。prev_group_end = 1，此时链表：0 -> 2 -> 1 -> 3 -> 4 -> 5。5、返回dummy.next = 2，最终链表为：2 -> 1 -> 4 -> 3 -> 5。]]></description><category></category></item><item><title><![CDATA[力扣刷题17]]></title><link>https://blog.youkuaiyun.com/m0_73523976/article/details/157804295</link><guid>https://blog.youkuaiyun.com/m0_73523976/article/details/157804295</guid><author>m0_73523976</author><pubDate>Fri, 06 Feb 2026 21:10:17 +0800</pubDate><description><![CDATA[（3）奇数个节点：1 -> 2 -> 3 ->None，最后一个节点3不交换，结果为2 -> 1 -> 3，符合要求。first = 1，second = 2，first.next = f(3)，即1.next = 4；虚拟头节点统一处理所有节点对的交换逻辑。初始状态：dummy(0) -> 1 -> 2 -> 3 -> 4，prev = dummy。状态：2 -> 1 -> 4 -> 3，prex.next = 4，prex = 3；状态：0 -> 2 -> 1 -> 3 -> 4，prex = 1；]]></description><category></category></item><item><title><![CDATA[力扣刷题16]]></title><link>https://blog.youkuaiyun.com/m0_73523976/article/details/157762302</link><guid>https://blog.youkuaiyun.com/m0_73523976/article/details/157762302</guid><author>m0_73523976</author><pubDate>Thu, 05 Feb 2026 14:51:50 +0800</pubDate><description><![CDATA[将"()()"加入result中，此时result = ["(())","()()"]；第一层递归：backtrack("(",1,0)  ，len("(") = 1 < 4，执行选择1和选择2；第三层递归：调用backtrack("(())",2,2)，len ("(())")=4 → 满足终止条件。2、选择 2：close_count (1) <2 → 调用backtrack("(())",2,2)。2、选择 2：close_count (1) <2，调用backtrack("()()",2,2)。]]></description><category></category></item><item><title><![CDATA[力扣刷题15]]></title><link>https://blog.youkuaiyun.com/m0_73523976/article/details/157686000</link><guid>https://blog.youkuaiyun.com/m0_73523976/article/details/157686000</guid><author>m0_73523976</author><pubDate>Wed, 04 Feb 2026 21:15:01 +0800</pubDate><description><![CDATA[1、第一层调用：merge(1->3->5,2->4->6) -> 1 < 2 -> 1.next = merge(3->5,2->4->6),返回1;2、第二层调用：merge(3->5,2->4->6) -> 3 > 2 ->2.next = merge(3->5,4->6)，返回2；3、第三层调用：merge(3->5,4->6) -> 4 > 3 ->3.next = merge(5,4->6)，返回3；7、list1为空，循环结束，current.next = list2，也就是剩下的数字6；]]></description><category></category></item><item><title><![CDATA[力扣刷题14]]></title><link>https://blog.youkuaiyun.com/m0_73523976/article/details/157619520</link><guid>https://blog.youkuaiyun.com/m0_73523976/article/details/157619520</guid><author>m0_73523976</author><pubDate>Mon, 02 Feb 2026 14:43:16 +0800</pubDate><description><![CDATA[接下来进入循环：slow = dummy，fast = 21、第一次循环：fast从2到3，slow从dummy --> 1 --> fast.next = 4None，继续；2、第二次循环：fast从3到4，slow从1 --> 2 --> fast.next = 5None，继续；3、第三次循环：fast从4到5，slow从2 --> 3 --> fast.next = None，循环结束。]]></description><category></category></item><item><title><![CDATA[力扣刷题13]]></title><link>https://blog.youkuaiyun.com/m0_73523976/article/details/157553316</link><guid>https://blog.youkuaiyun.com/m0_73523976/article/details/157553316</guid><author>m0_73523976</author><pubDate>Sat, 31 Jan 2026 16:24:00 +0800</pubDate><description><![CDATA[j = 2，nums[j] = 0，初始化left = 3，right = 5，nums[left] = 0，nums[right] = 2，进入循环；j = 3，nums[j] = 0，初始化left = 4，right = 5，nums[left] = 1，nums[right] = 2，进入循环；j = 1，nums[j] = -1，初始化left = 2，right = 5，nums[2] = 0，nums[5] = 2，进入循环；，nums[i] = -2，进入第二层循环，j从j + 1开始。]]></description><category></category></item><item><title><![CDATA[力扣刷题12]]></title><link>https://blog.youkuaiyun.com/m0_73523976/article/details/157516230</link><guid>https://blog.youkuaiyun.com/m0_73523976/article/details/157516230</guid><author>m0_73523976</author><pubDate>Fri, 30 Jan 2026 17:35:35 +0800</pubDate><description><![CDATA[处理第二个数字“3”：temp为空，遍历result = ["a","b","c"]，再遍历数字“3”对应的字母“def”，拼接之后得到：["ad","ae","af","bd","be","bf","cd","ce","cf"]，current_sum = - 1 < target，此时更新left = 3，right = 3，结束循环。temp = ["ad","ae","af","bd","be","bf","cd","ce","cf"]，result更新为上述列表。注意 1 不对应任何字母。]]></description><category></category></item><item><title><![CDATA[力扣刷题11]]></title><link>https://blog.youkuaiyun.com/m0_73523976/article/details/157468695</link><guid>https://blog.youkuaiyun.com/m0_73523976/article/details/157468695</guid><author>m0_73523976</author><pubDate>Wed, 28 Jan 2026 20:00:09 +0800</pubDate><description><![CDATA[题目：编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀，返回空字符串""。这个题我用的是横向扫描法，先把第一个字符当作“初始公共前缀”，然后用这个前缀和后面的每个字符串作对比，如果当前字符串不以这个前缀开头，就把前缀砍掉一个字符，重复这个过程，直到前缀匹配成功，或者验证出来没有公共前缀。用所给示例模拟一下：（以["flower","flow","flight"]为例）1、初始prefix = “flower”]]></description><category></category></item><item><title><![CDATA[力扣刷题10]]></title><link>https://blog.youkuaiyun.com/m0_73523976/article/details/157438510</link><guid>https://blog.youkuaiyun.com/m0_73523976/article/details/157438510</guid><author>m0_73523976</author><pubDate>Tue, 27 Jan 2026 21:23:12 +0800</pubDate><description><![CDATA[i = 0时，roman_map[0] = M，M = 1000，M > C（1000 > 100），total += 1000，total = 1000；i = 5时，roman_map[5] = I，I = 1，I < V（1 < 5），total -= 1，total = 1989；i = 0时，roman_map[0] = I，I = 1，V = 5，I < V，total -= 1，total = -1；我们可以统一遍历，当当前字符的值小于下一个字符的值时，就减去当前值；]]></description><category></category></item><item><title><![CDATA[力扣刷题9]]></title><link>https://blog.youkuaiyun.com/m0_73523976/article/details/157400356</link><guid>https://blog.youkuaiyun.com/m0_73523976/article/details/157400356</guid><author>m0_73523976</author><pubDate>Mon, 26 Jan 2026 20:21:58 +0800</pubDate><description><![CDATA[第一次移动：left=1，right=8，height[left]=8，height[right]=7，面积7*7=49；第三次移动：left=1，right=6，height[left]=8，height[right]=8，面积5*8=40；第六次移动：left=1，right=3，height[left]=8，height[right]=2，面积2*2=4；第七次移动：left=1，right=2，height[left]=8，height[right]=6，面积1*6=6；，只通过了部分样例。]]></description><category></category></item><item><title><![CDATA[力扣刷题8]]></title><link>https://blog.youkuaiyun.com/m0_73523976/article/details/157359821</link><guid>https://blog.youkuaiyun.com/m0_73523976/article/details/157359821</guid><author>m0_73523976</author><pubDate>Mon, 26 Jan 2026 17:03:35 +0800</pubDate><description><![CDATA[第一题：回文数题目：给你一个整数x，如果x是回文整数，返回true，否则返回false。回文数是指正序（从左到右）读和倒序（从右到左）读都是一样的整数。对于这个题，我有两种做法：（1）直接反转字符串，观察反转后的字符串是否与原字符串相等，最后返回判断结果；（2）先排除特殊情况：整数是负数和结尾数字是0的。按奇数和偶数来分，这里的奇数和偶数是以字符串x的长度为衡量标准，只反转一半，观察字符串的前后部分是否相等。这种写法非常简洁，逻辑也很清晰。]]></description><category></category></item><item><title><![CDATA[正则表达式相关知识点]]></title><link>https://blog.youkuaiyun.com/m0_73523976/article/details/157328259</link><guid>https://blog.youkuaiyun.com/m0_73523976/article/details/157328259</guid><author>m0_73523976</author><pubDate>Sat, 24 Jan 2026 21:02:08 +0800</pubDate><description><![CDATA[1、正则表达式是一个特殊的字符序列，它能帮助我们更加简便地检查一个字符串是否与某种模式匹配。正则表达式是一个很强大的字符串处理工具，几乎任何关于字符串的操作都可以使用正则表达式来完成。在Python中需要通过正则表达式对字符串进行匹配时，需要用到re模块。2、正则表达式的应用场景表单验证、爬虫、文本数据处理（1）导入re模块import re（2）使用match方法进行匹配操作re.match能够匹配出以xxx开头的字符串，如果起始位置没有匹配成功，就会返回None。]]></description><category></category></item></channel></rss>