<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[maybloom的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/maybloom</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; maybloom]]></copyright><item><title><![CDATA[刷题营 二叉树 572. 另一棵树的子树]]></title><link>https://blog.youkuaiyun.com/maybloom/article/details/131818643</link><guid>https://blog.youkuaiyun.com/maybloom/article/details/131818643</guid><author>maybloom</author><pubDate>Sun, 23 Jul 2023 22:11:29 +0800</pubDate><description><![CDATA[递归三要素：输入，输出；只能通过部分用例，找不到错误出在哪里？二叉树的最大深度，用回溯算法没有写出来。二叉树的最小深度，还需要再看下解说。递归函数就是单层的实现逻辑。]]></description><category></category></item><item><title><![CDATA[labuladong 双指针：5. 最长回文子串没有刷出来，370. 区间加法 重要]]></title><link>https://blog.youkuaiyun.com/maybloom/article/details/131739803</link><guid>https://blog.youkuaiyun.com/maybloom/article/details/131739803</guid><author>maybloom</author><pubDate>Sat, 15 Jul 2023 17:35:22 +0800</pubDate><description><![CDATA[差分可以定义成一个类，包含创立差分数组，增减操作，还原数组三个函数。将原链表分为P1X，再把这两个链表拼接起来。有个指针P，指向cur1和cur2值偏小的那个。prSum【i】表示数组前i-1个元素之和。要新建一个链表，一般要构造虚拟头结点。最后还要把没有遍历完的那个链表放进去。数组的双指针基本和代码随想录重合，然后用类实例的方法做题。]]></description><category></category></item><item><title><![CDATA[重刷链表 设计链表要重视]]></title><link>https://blog.youkuaiyun.com/maybloom/article/details/131625133</link><guid>https://blog.youkuaiyun.com/maybloom/article/details/131625133</guid><author>maybloom</author><pubDate>Sat, 15 Jul 2023 12:38:13 +0800</pubDate><description><![CDATA[熟悉链表节点和值的表示方法。]]></description><category></category></item><item><title><![CDATA[重刷哈希表]]></title><link>https://blog.youkuaiyun.com/maybloom/article/details/131614250</link><guid>https://blog.youkuaiyun.com/maybloom/article/details/131614250</guid><author>maybloom</author><pubDate>Sun, 09 Jul 2023 17:20:43 +0800</pubDate><description><![CDATA[使用set（）方法就可以熟悉字典和集合的常见操作。]]></description><category></category></item><item><title><![CDATA[回溯理解很困难，回去刷字符串]]></title><link>https://blog.youkuaiyun.com/maybloom/article/details/131603689</link><guid>https://blog.youkuaiyun.com/maybloom/article/details/131603689</guid><author>maybloom</author><pubDate>Sat, 08 Jul 2023 17:01:14 +0800</pubDate><description><![CDATA[回溯方法模板反转字符串：reverse（）函数反转字符串2：需要再看看利用切片的写法可以记住，很方便p=0p2=p+ks=s[0:p]+s[p:p2][::-1]+s[p2:]（中间切片反转的写法）p=p+2*kreturn s。]]></description><category></category></item><item><title><![CDATA[重刷数组 滑动窗口]]></title><link>https://blog.youkuaiyun.com/maybloom/article/details/131585855</link><guid>https://blog.youkuaiyun.com/maybloom/article/details/131585855</guid><author>maybloom</author><pubDate>Fri, 07 Jul 2023 19:42:45 +0800</pubDate><description><![CDATA[滑动窗口的应用，注意min_len初始值设为float（‘inf）’ ，如果没有结果，则min_len一直是float。库中的一个函数，可以用来统计一个 python 列表、字符串、元组等。探讨元素是否在某个集合里，最好是用哈希表（这里用字典来存储）记住Counter（）函数的用法，enumerate用法。中每个元素出现的次数，并返回一个。]]></description><category></category></item><item><title><![CDATA[重刷双指针 退格字符串要重视]]></title><link>https://blog.youkuaiyun.com/maybloom/article/details/131563857</link><guid>https://blog.youkuaiyun.com/maybloom/article/details/131563857</guid><author>maybloom</author><pubDate>Wed, 05 Jul 2023 22:08:37 +0800</pubDate><description><![CDATA[解答：由于 # 号只会消除左边的一个字符，所以对右边的字符无影响，所以我们选择从后往前遍历 S，T 字符串。slow+=1（因为需要向slow中填数据，应该先加1，避免覆盖原有数据）slow1-=1(在测试。时出错，不知道#号到0位置应该怎么处理？]]></description><category></category></item><item><title><![CDATA[刷题营 16天]]></title><link>https://blog.youkuaiyun.com/maybloom/article/details/131523844</link><guid>https://blog.youkuaiyun.com/maybloom/article/details/131523844</guid><author>maybloom</author><pubDate>Mon, 03 Jul 2023 22:28:21 +0800</pubDate><description><![CDATA[题解：求二叉树的高度用后序遍历，求深度用前序遍历，此题中根节点的高度就是最大深度，所以用后序遍历。完全二叉树判断满二叉树的方法：最左边子树的深度和最右边子树的深度相等，不需要遍历中间节点。题解：需要考虑左子树为空或者右子树为空的情况。递归一定要注意终止条件 （node为空）题解：普通二叉树直接用递归遍历就可以了。满二叉树的节点计算：2的N次方-1。递归的方法要掌握，很简单。]]></description><category></category></item><item><title><![CDATA[刷题营 15天]]></title><link>https://blog.youkuaiyun.com/maybloom/article/details/131455652</link><guid>https://blog.youkuaiyun.com/maybloom/article/details/131455652</guid><author>maybloom</author><pubDate>Sat, 01 Jul 2023 09:11:37 +0800</pubDate><description><![CDATA[【代码】刷题营 15天。]]></description><category></category></item><item><title><![CDATA[刷题营 第14天]]></title><link>https://blog.youkuaiyun.com/maybloom/article/details/131385632</link><guid>https://blog.youkuaiyun.com/maybloom/article/details/131385632</guid><author>maybloom</author><pubDate>Sun, 25 Jun 2023 22:08:13 +0800</pubDate><description><![CDATA[二叉树的实现是链表，要记住自己定义二叉树，遍历就是用递归，记住递归传入的参数和返回值，递归结束条件, 不断缩小规模。后序遍历  中左右-》中右左-》翻转result列表得到左右中。递归法必须掌握，迭代法可以先了解。]]></description><category></category></item><item><title><![CDATA[刷题营13天 （重点关注前K个高频元素）]]></title><link>https://blog.youkuaiyun.com/maybloom/article/details/131275133</link><guid>https://blog.youkuaiyun.com/maybloom/article/details/131275133</guid><author>maybloom</author><pubDate>Sun, 18 Jun 2023 22:07:26 +0800</pubDate><description><![CDATA[在单调队列里面，怎么判断什么时候应该计算一下最大值？第一次遍历K，输出第一个最大值，后面遍历【k,size】，每次都必须输出一个最大值。题解：最重要的是随时维护自定义的单调队列，保证出口处的元素是滑动窗口的最大值，并且只加入有可能成为最大值的元素。初始思路：统计各个元素出现的次数，用字典；然后按字典的值排序，最后输出前K个字典的键。题解：只需要维持前K个元素，用堆的数据结构，堆里面只有K个元素。利用大顶堆：最后留下的是集合中最小的K个元素。利用小顶堆：才能留下集合中最大的K个元素。学习heapq库的用法。]]></description><category></category></item><item><title><![CDATA[刷题营 12天]]></title><link>https://blog.youkuaiyun.com/maybloom/article/details/131268733</link><guid>https://blog.youkuaiyun.com/maybloom/article/details/131268733</guid><author>maybloom</author><pubDate>Sun, 18 Jun 2023 12:21:34 +0800</pubDate><description><![CDATA[题解：遇到左边的符号，放入栈里的是右边的符号，这样只要对比栈的符号是否和右边符号相同就可以，]]></description><category></category></item><item><title><![CDATA[刷题营 第11天]]></title><link>https://blog.youkuaiyun.com/maybloom/article/details/131263882</link><guid>https://blog.youkuaiyun.com/maybloom/article/details/131263882</guid><author>maybloom</author><pubDate>Sat, 17 Jun 2023 20:23:48 +0800</pubDate><description><![CDATA[一般这种语境的队列默认是单端先进先出的的，把前n-1个元素先弹出，在从队尾加入，再弹出的就是最后一个。return self.que.pop()(利用双端队列中从队尾弹出元素，也能编译通过）操作不难，但还需复习，熟练掌握。]]></description><category></category></item><item><title><![CDATA[刷题营 第九天]]></title><link>https://blog.youkuaiyun.com/maybloom/article/details/131257529</link><guid>https://blog.youkuaiyun.com/maybloom/article/details/131257529</guid><author>maybloom</author><pubDate>Sat, 17 Jun 2023 16:10:20 +0800</pubDate><description><![CDATA[reversed是函数，reverse是方法，上面的代码中，我们使用list()将reversed()函数返回的对象转换回列表。(ss.find(s)要么返回匹配的第一个位置的下标，要么返回-1，题目要求返回True和False，所以要加上！s[0:n]=s[0:n:-1](这一步是错误的，她直接把前n个字符去掉了，ss=s[1:]+s[:-1](去掉s+s 的首字符和尾字符），这样避免在s+s中搜索出原来的s，我们要搜索的是中间拼接出来的s。掌握用find方法的实现就行了。利用数组的切片就可以实现。]]></description><category></category></item><item><title><![CDATA[刷题营 第八天]]></title><link>https://blog.youkuaiyun.com/maybloom/article/details/131221506</link><guid>https://blog.youkuaiyun.com/maybloom/article/details/131221506</guid><author>maybloom</author><pubDate>Thu, 15 Jun 2023 11:11:53 +0800</pubDate><description><![CDATA[return''.join(res) （利用range设置步长2K，数组切片替换整体，最后用join函数，要记住）循环最后到]]></description><category></category></item><item><title><![CDATA[刷题营 第7天]]></title><link>https://blog.youkuaiyun.com/maybloom/article/details/131211707</link><guid>https://blog.youkuaiyun.com/maybloom/article/details/131211707</guid><author>maybloom</author><pubDate>Wed, 14 Jun 2023 17:12:58 +0800</pubDate><description><![CDATA[if n1+n2 in record:(请问有什么错误）使用数组，存a+b的值，以及出现的次数。四个数组两两分组循环，时间复杂度N方。]]></description><category></category></item><item><title><![CDATA[刷题营第六天]]></title><link>https://blog.youkuaiyun.com/maybloom/article/details/131146572</link><guid>https://blog.youkuaiyun.com/maybloom/article/details/131146572</guid><author>maybloom</author><pubDate>Sat, 10 Jun 2023 21:08:07 +0800</pubDate><description><![CDATA[242.有效的字母异位词
]]></description><category></category></item><item><title><![CDATA[刷题营 第四天]]></title><link>https://blog.youkuaiyun.com/maybloom/article/details/131123700</link><guid>https://blog.youkuaiyun.com/maybloom/article/details/131123700</guid><author>maybloom</author><pubDate>Sat, 10 Jun 2023 20:56:58 +0800</pubDate><description><![CDATA[初始想法：链表相交的点条件是curA.next=curB.next，但由于链表长度不一样，curA和curB可能需要移动不同的步数才能走到相交点（如curA两步，curB三步），没有想到如何操作这个不同？cur指针必须在需要操作的两个节点前面，可以直接画个链表，最重要的是指针改变的顺序，标蓝色的两根线会断掉，必须先保存两个指针的值(cur.next和cur.next.next.next)ast一次走两步，slow一次走一步，在进入环内后，快指针走一圈后一定能追上慢指针。sizeA+=1(求链表的长度）]]></description><category></category></item><item><title><![CDATA[刷题营第三天]]></title><link>https://blog.youkuaiyun.com/maybloom/article/details/131115912</link><guid>https://blog.youkuaiyun.com/maybloom/article/details/131115912</guid><author>maybloom</author><pubDate>Thu, 08 Jun 2023 22:06:19 +0800</pubDate><description><![CDATA[return head（开始没有加这两句，导致测试在【】时程序出错，通过检测测试案例检查出来）在节点N插入节点：一定要保证current.next 指向N节点，这样才能在current这个节点操作。(测试用例通过，但显示超出时间限制，暴力算法不可取，利用双指针方法会很简单，这是一个升序的数列）首先都要判断N的合法性，应该0]]></description><category></category></item><item><title><![CDATA[刷题营第二天]]></title><link>https://blog.youkuaiyun.com/maybloom/article/details/131094988</link><guid>https://blog.youkuaiyun.com/maybloom/article/details/131094988</guid><author>maybloom</author><pubDate>Wed, 07 Jun 2023 22:26:57 +0800</pubDate><description><![CDATA[螺旋矩阵要搞清楚offset和起始点的关系，offset的意义在于 结束一圈后 起始位置向后移 结束位置向前移，以n=4的矩阵，第二圈startx=1，n-offset=2，实际每条边只需填一个数。就是用float inf构造一个长度等于nums 长度的新数组，其中float inf 是单精度浮点数的最大值，直接用res=[]，后面写res=[]就越界了。i-=1（不应该放在if循环内，不论是填入左指针还是右指针的值，都会执行i-1的操作，应该放到if-else语句后）# i,j初始化在0，1位置。]]></description><category></category></item></channel></rss>