<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[xjfbracing的博客]]></title><description><![CDATA[代码随想录训练营第一天]]></description><link>https://blog.youkuaiyun.com/xjfbracing</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xjfbracing]]></copyright><item><title><![CDATA[代码随想录训练营第十九天]]></title><link>https://blog.youkuaiyun.com/xjfbracing/article/details/132115568</link><guid>https://blog.youkuaiyun.com/xjfbracing/article/details/132115568</guid><author>xjfbracing</author><pubDate>Mon, 07 Aug 2023 11:56:29 +0800</pubDate><description><![CDATA[想象一下，当你将其中一棵覆盖到另一棵之上时，两棵树上的一些节点将会重叠（而另一些不会）。你需要将这两棵树合并成一棵新二叉树。合并的规则是：如果两个节点重叠，那么将这两个节点的值相加作为合并后节点的新值；返回以该节点为根的子树。如果节点不存在，则返回。合并过程必须从两个树的根节点开始。null 的节点将直接作为新二叉树的节点。3. 给定二叉搜索树（BST）的根节点。，判断其是否是一个有效的二叉搜索树。二叉搜索树定义如下：（力扣98）4. 给你一个二叉树的根节点。返回合并后的二叉树。]]></description><category></category></item><item><title><![CDATA[代码随想录训练营第十八天]]></title><link>https://blog.youkuaiyun.com/xjfbracing/article/details/131734919</link><guid>https://blog.youkuaiyun.com/xjfbracing/article/details/131734919</guid><author>xjfbracing</author><pubDate>Tue, 01 Aug 2023 17:47:25 +0800</pubDate><description><![CDATA[4. 给定两个整数数组 inorder 和 postorder ，其中 inorder 是二叉树的中序遍历， postorder 是同一棵树的后序遍历，请你构造并返回这颗 二叉树。5. 给定两个整数数组 preorder 和 inorder ，其中 preorder 是二叉树的先序遍历， inorder 是同一棵树的中序遍历，请构造二叉树并返回其根节点。3. 给你二叉树的根节点 root 和一个整数目标和 targetSum ，找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。]]></description><category></category></item><item><title><![CDATA[代码随想录训练营第十七天]]></title><link>https://blog.youkuaiyun.com/xjfbracing/article/details/131432783</link><guid>https://blog.youkuaiyun.com/xjfbracing/article/details/131432783</guid><author>xjfbracing</author><pubDate>Mon, 03 Jul 2023 13:35:46 +0800</pubDate><description><![CDATA[1. 给定一个二叉树，判断它是否是高度平衡的二叉树。平衡二叉树：左右子树的高度差小于等于1.，返回所有从根节点到叶子节点的路径。是指没有子节点的节点。，返回所有左叶子之和。2. 给你一个二叉树的根节点。3. 给定二叉树的根节点。]]></description><category></category></item><item><title><![CDATA[代码随想录训练营第十六天]]></title><link>https://blog.youkuaiyun.com/xjfbracing/article/details/131327976</link><guid>https://blog.youkuaiyun.com/xjfbracing/article/details/131327976</guid><author>xjfbracing</author><pubDate>Wed, 21 Jun 2023 17:50:41 +0800</pubDate><description><![CDATA[完全二叉树 的定义如下：在完全二叉树中，除了最底层节点可能没填满外，其余每层节点数都达到最大值，并且最下面一层的节点都集中在该层最左边的若干位置。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。3. 给你一棵 完全二叉树 的根节点 root ，求出该树的节点个数。二叉树高度：任一节点到叶子节点的距离。二叉树深度：任一节点到根节点的距离。叶子节点是指没有子节点的节点。叶子节点是指没有子节点的节点。根节点的高度就是二叉树的最大深度。]]></description><category></category></item><item><title><![CDATA[代码随想录训练营第十五天]]></title><link>https://blog.youkuaiyun.com/xjfbracing/article/details/131220228</link><guid>https://blog.youkuaiyun.com/xjfbracing/article/details/131220228</guid><author>xjfbracing</author><pubDate>Thu, 15 Jun 2023 17:03:48 +0800</pubDate><description><![CDATA[7. 给定一个 完美二叉树 ，其所有叶子节点都在同一层，每个父节点都有两个子节点。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。，想象自己站在它的右侧，按照从顶部到底部的顺序，返回从右侧所能看到的节点值。树的序列化输入是用层序遍历，每组子节点都由 null 值分隔（参见示例）。（即按从叶子节点所在层到根节点所在的层，逐层从左向右遍历）（力扣107）叶子节点是指没有子节点的节点。叶子节点是指没有子节点的节点。（即从左到右，逐层遍历）。]]></description><category></category></item><item><title><![CDATA[代码随想录训练营第十四天]]></title><link>https://blog.youkuaiyun.com/xjfbracing/article/details/131125103</link><guid>https://blog.youkuaiyun.com/xjfbracing/article/details/131125103</guid><author>xjfbracing</author><pubDate>Fri, 09 Jun 2023 22:42:12 +0800</pubDate><description><![CDATA[二叉树的后续遍历、中序遍历、前序遍历]]></description><category></category></item><item><title><![CDATA[代码随想录训练营第十三天]]></title><link>https://blog.youkuaiyun.com/xjfbracing/article/details/131097846</link><guid>https://blog.youkuaiyun.com/xjfbracing/article/details/131097846</guid><author>xjfbracing</author><pubDate>Thu, 08 Jun 2023 16:26:01 +0800</pubDate><description><![CDATA[1. 给定一个数组 nums，有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。2. 给定一个非空的整数数组，返回其中出现频率前 k 高的元素。你能在线性时间复杂度内解决此题吗？暂时没有理解，后边补上。进阶：（力扣239）]]></description><category></category></item><item><title><![CDATA[代码随想录训练营第十一天]]></title><link>https://blog.youkuaiyun.com/xjfbracing/article/details/131089034</link><guid>https://blog.youkuaiyun.com/xjfbracing/article/details/131089034</guid><author>xjfbracing</author><pubDate>Wed, 07 Jun 2023 22:56:10 +0800</pubDate><description><![CDATA[3. 根据 逆波兰表示法，求表达式的值。有效的运算符包括 + ,  - ,  * ,  /。每个运算对象可以是整数，也可以是另一个逆波兰表达式。换句话说，表达式总会得出有效数值且不存在除数为 0 的情况。在 S 上反复执行重复项删除操作，直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。1. 给定一个只包括 '('，')'，'{'，'}'，'['，']' 的字符串，判断字符串是否有效。2. 给出由小写字母组成的字符串 S，重复项删除操作会选择两个相邻且相同的字母，并删除它们。]]></description><category></category></item><item><title><![CDATA[代码随想录训练营第十天]]></title><link>https://blog.youkuaiyun.com/xjfbracing/article/details/131068849</link><guid>https://blog.youkuaiyun.com/xjfbracing/article/details/131068849</guid><author>xjfbracing</author><pubDate>Tue, 06 Jun 2023 17:39:20 +0800</pubDate><description><![CDATA[栈以及队列的实现。]]></description><category></category></item><item><title><![CDATA[代码随想录训练营第八天]]></title><link>https://blog.youkuaiyun.com/xjfbracing/article/details/131004737</link><guid>https://blog.youkuaiyun.com/xjfbracing/article/details/131004737</guid><author>xjfbracing</author><pubDate>Tue, 06 Jun 2023 09:31:54 +0800</pubDate><description><![CDATA[5. 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。比如，输入字符串"abcdefg"和数字2，该函数将返回左旋转两位得到的结果"cdefgab"。2. 给定一个字符串 s 和一个整数 k，从字符串开头算起, 每计数至 2k 个字符，就反转这 2k 个字符中的前 k 个字符。如果剩余字符小于 2k 但大于或等于 k 个，则反转前 k 个字符，其余字符保持原样。3. 请实现一个函数，把字符串 s 中的每个空格替换成"%20"。示例 1： 输入：s = "We are happy."]]></description><category></category></item><item><title><![CDATA[代码随想录训练营第七天]]></title><link>https://blog.youkuaiyun.com/xjfbracing/article/details/130991783</link><guid>https://blog.youkuaiyun.com/xjfbracing/article/details/130991783</guid><author>xjfbracing</author><pubDate>Fri, 02 Jun 2023 00:46:40 +0800</pubDate><description><![CDATA[为了使问题简单化，所有的 A, B, C, D 具有相同的长度 N，且 0 ≤ N ≤ 500。自己没有好的思路，看了卡哥的讲解，瞬间恍然大悟，和之前处理的主体思路是相同的，就是把复杂度高的问题转化为复杂度低的问题，即将四个数相加的问题转化为在两个数之和的map容器中查找另两个数之和，很巧妙，写完后，出现上述问题，修改后提交OK.卡哥反复提到这个题和字母异位词那个题很相似，我就回看了自己之前写的代码，然后自己想出了此题的代码逻辑，如下，提交OK，所以看到题目，先别着急，慢慢来，思路就有了。]]></description><category></category></item><item><title><![CDATA[代码随想录训练营第六天]]></title><link>https://blog.youkuaiyun.com/xjfbracing/article/details/130968621</link><guid>https://blog.youkuaiyun.com/xjfbracing/article/details/130968621</guid><author>xjfbracing</author><pubDate>Wed, 31 May 2023 22:55:09 +0800</pubDate><description><![CDATA[这一步容易写错及忽略，还有自己对于map的操作还不太熟悉，需要进一步的加强。本题的解题思路很好地诠释了将复杂问题单一化：将寻找符合目标和的两个数组元素下标转化为寻找单一的符合要求的一个数组元素下标。4. 给定一个整数数组 nums 和一个目标值 target，请你在该数组中找出和为目标值的那 两个 整数，并返回他们的数组下标。「快乐数」定义为：对于一个正整数，每一次将该数替换为它每个位置上的数字的平方和，然后重复这个过程直到这个数变为 1，也可能是 无限循环 但始终变不到 1。不是，则返回 False。]]></description><category></category></item><item><title><![CDATA[代码随想录训练营第四天]]></title><link>https://blog.youkuaiyun.com/xjfbracing/article/details/130921436</link><guid>https://blog.youkuaiyun.com/xjfbracing/article/details/130921436</guid><author>xjfbracing</author><pubDate>Mon, 29 May 2023 09:23:07 +0800</pubDate><description><![CDATA[此处写错了，应该是cur->next->next = tmp1，此步骤为关键三步中的第二步。自己开始写没思路，看了卡哥的代码，写出来了，结果发现了这个问题。这个题的关键思路是三步走，及两个tmp指针在cur->next没有变化之前保存节点1和节点3，最后就是关于循环终止条件，分别在奇偶条件下终止条件不同：奇数节点下为cur->next->next!1. 给你一个链表，两两交换其中相邻的节点，并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题（即，只能进行节点交换）。]]></description><category></category></item><item><title><![CDATA[代码随想录训练营第三天]]></title><link>https://blog.youkuaiyun.com/xjfbracing/article/details/130894492</link><guid>https://blog.youkuaiyun.com/xjfbracing/article/details/130894492</guid><author>xjfbracing</author><pubDate>Sun, 28 May 2023 23:16:24 +0800</pubDate><description><![CDATA[NULL，需要注意，因为当pre走到倒数第二个链条，cur走到倒数第一个链条时，此时往下走，就会pre = cur;因为这个条件判断的==写成了=，害的我排查了大半天，最后群里问卡哥，说让我打印一下，然后再仔细看了看，发现把判断写成赋值了，太痛苦了！val 是当前节点的值，next 是指向下一个节点的指针/引用。如果是双向链表，则还需要属性 prev 以指示链表中的上一个节点。2. 你可以选择使用单链表或者双链表，设计并实现自己的链表。，请你反转链表，并返回反转后的链表。的节点，并返回新的头节点。]]></description><category></category></item><item><title><![CDATA[代码随想录训练营第二天]]></title><link>https://blog.youkuaiyun.com/xjfbracing/article/details/130870124</link><guid>https://blog.youkuaiyun.com/xjfbracing/article/details/130870124</guid><author>xjfbracing</author><pubDate>Fri, 26 May 2023 00:49:23 +0800</pubDate><description><![CDATA[2. 给定一个含有 n 个正整数的数组和一个正整数 target。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ，并返回其长度。总结：感觉本题难点在于要一致遵循左闭右开原则，还有就是开的区间点偏移量每次循环都会增加1，因为行和列整体往里缩了，且每次缩1，最后就是最后如果是奇数数组，需要单独给中间元素赋值，其余的需要注意下细节即可。自己看完题目没有什么思路，就看了卡哥的题解。组成的新数组，要求也按。]]></description><category></category></item><item><title><![CDATA[代码随想录训练营第一天]]></title><link>https://blog.youkuaiyun.com/xjfbracing/article/details/130852938</link><guid>https://blog.youkuaiyun.com/xjfbracing/article/details/130852938</guid><author>xjfbracing</author><pubDate>Wed, 24 May 2023 18:22:43 +0800</pubDate><description><![CDATA[这句是我出错的地方，我竟然把取中间值的下标放在了循环外，导致我排查了半天，最后对比卡哥代码发现不对，该过来就好了；另外还有在除二的时候一定要加上left，也就是左边界，因为减完后就是个基于左边界的偏移量，如果不加，这个偏移量将没有意义。2. 给你一个数组 nums 和一个值 val，你需要 原地 移除所有数值等于 val 的元素，并返回移除后数组的新长度。（不要使用额外的数组空间，你必须仅使用 O(1) 额外空间并。导致快指针从数组第二个开始遍历，破坏了完整性。你不需要考虑数组中超出新长度后面的元素。]]></description><category></category></item></channel></rss>