<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[crisp0530的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/crisp0530</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; crisp0530]]></copyright><item><title><![CDATA[算法刷题日志]]></title><link>https://blog.youkuaiyun.com/crisp0530/article/details/141503846</link><guid>https://blog.youkuaiyun.com/crisp0530/article/details/141503846</guid><author>crisp0530</author><pubDate>Mon, 26 Aug 2024 07:53:44 +0800</pubDate><description><![CDATA[从左下角开始找，比目标要小的就往右走，比目标要大的就往上走，等于就返回true。先判断合法不合法，合法就添加进队列，然后递归的方式去判断。记得研究acm模式下怎么写链表题。]]></description><category></category></item><item><title><![CDATA[LCR 162. 数字 1 的个数 题解]]></title><link>https://blog.youkuaiyun.com/crisp0530/article/details/141459626</link><guid>https://blog.youkuaiyun.com/crisp0530/article/details/141459626</guid><author>crisp0530</author><pubDate>Fri, 23 Aug 2024 10:34:00 +0800</pubDate><description><![CDATA[给定一个整数数组 nums，将数组中的元素向右轮转 k 个位置，其中 k 是非负数。时间复杂度o（n），空间复杂度 o（1）]]></description><category></category></item><item><title><![CDATA[【算法刷题日志】4. 寻找两个正序数组的中位数 题解]]></title><link>https://blog.youkuaiyun.com/crisp0530/article/details/141190665</link><guid>https://blog.youkuaiyun.com/crisp0530/article/details/141190665</guid><author>crisp0530</author><pubDate>Wed, 14 Aug 2024 14:48:45 +0800</pubDate><description><![CDATA[通过二分的方法，每次排除掉k/2的数，不断地递归排除，直到最后k=1的时候就选取最小的那个数就可以了。]]></description><category></category></item><item><title><![CDATA[【算法刷题日志】1044 最长重复子串和75 颜色分类，]]></title><link>https://blog.youkuaiyun.com/crisp0530/article/details/140950857</link><guid>https://blog.youkuaiyun.com/crisp0530/article/details/140950857</guid><author>crisp0530</author><pubDate>Tue, 06 Aug 2024 15:48:51 +0800</pubDate><description><![CDATA[所以p这个数组的意义就是 相当于一个哈希因子一样，为了减少哈希冲突的可能性，h数组代表的就是比如h【i】 就是长度为i的字符串的哈希值，用字符串哈希来匹配，关键在于如何 check 函数，即实现「检查某个长度 len 作为最大长度，是否存在合法方案」。这题就是双指针法，指到1的时候就和p1进行交换，然后p1指针往前移动，指到0的时候就和p0指针进行交换，p0和p1同时往前移动，由于可能出现连续的0后面连续的1，所以为了避免1被交换到末尾，当p1>p0的时候 还需要再和p1在交换一次。]]></description><category></category></item><item><title><![CDATA[【算法刷题日志】信封嵌套问题]]></title><link>https://blog.youkuaiyun.com/crisp0530/article/details/140752287</link><guid>https://blog.youkuaiyun.com/crisp0530/article/details/140752287</guid><author>crisp0530</author><pubDate>Tue, 30 Jul 2024 11:50:18 +0800</pubDate><description><![CDATA[每次合法的嵌套都是大的套小的，就相当于找一个最长递增子序列，长度就是能嵌套的最多个数，所以我们可以先对宽度进行升序排序，如果宽度相同就按高度降序排序，降序排序就可以保证相同宽度的信封只有一个会被进行嵌套，避免重复。参考labuladong的题解https://leetcode.cn/problems/russian-doll-envelopes/solutions/19681/zui-chang-di-zeng-zi-xu-lie-kuo-zhan-dao-er-wei-er/]]></description><category></category></item><item><title><![CDATA[算法刷题日志 —— 数组和位运算]]></title><link>https://blog.youkuaiyun.com/crisp0530/article/details/140024106</link><guid>https://blog.youkuaiyun.com/crisp0530/article/details/140024106</guid><author>crisp0530</author><pubDate>Thu, 27 Jun 2024 21:29:29 +0800</pubDate><description><![CDATA[SET去重，直接加入，如果set能add成功的话说明 nums中没有，这时候就可以加入list。、两个数相同异或等于0 不同等与一 一直循环异或就可以得到最终的那个数。本身不改变 x 和 y，每次取不同的偏移位进行比较，不同则加一。循环固定取满 32。]]></description><category></category></item><item><title><![CDATA[算法刷题日志 hot100 数组分类]]></title><link>https://blog.youkuaiyun.com/crisp0530/article/details/139997049</link><guid>https://blog.youkuaiyun.com/crisp0530/article/details/139997049</guid><author>crisp0530</author><pubDate>Wed, 26 Jun 2024 20:40:42 +0800</pubDate><description><![CDATA[1 2 3 1     比如数组为 1234，则答案则像左边的矩阵一样，然后中间线就是1 然后就分为左下角，和右上角，运用了摩尔投票的思想，就是cnt就是票数，当票数为0的时候可以缩小区间，且此时不影响众数的取值。将数组排序，排序之后，随机整一个随机数在该数组的范围里面，记住i 是每一行 j是每一列 然后此解法是原地旋转90°。]]></description><category></category></item><item><title><![CDATA[力扣算法刷题日志]]></title><link>https://blog.youkuaiyun.com/crisp0530/article/details/139500371</link><guid>https://blog.youkuaiyun.com/crisp0530/article/details/139500371</guid><author>crisp0530</author><pubDate>Thu, 06 Jun 2024 15:11:13 +0800</pubDate><description><![CDATA[看到 dp[i + 1][j - 1] 就需要考虑特殊情况：如果去掉 s[i…j] 是否是回文只取决于 s[i] 与 s[j] 是否相等。j] 的长度为 222 时，只需要判断 s[i] 是否等于 s[j]，所以二维表格对角线上的数值不会被参考。j] 表示 s 的一个子串，因此 i 和 j 的关系是 i <= j，只需要填这张表格对角线以上的部分，因为是回文，所以确定一半就可以了；dp[i][j] 表示：子串 s[i…j] 定义为左闭右闭区间，即可以取到 s[i] 和 s[j]。第 1 步：定义状态。]]></description><category></category></item><item><title><![CDATA[算法刷题日志——每日一题 二叉树]]></title><link>https://blog.youkuaiyun.com/crisp0530/article/details/136346819</link><guid>https://blog.youkuaiyun.com/crisp0530/article/details/136346819</guid><author>crisp0530</author><pubDate>Wed, 28 Feb 2024 15:10:18 +0800</pubDate><description><![CDATA[看完题之后觉得有点不能理解题意，在思考了之后还是想不明白，然后就打开了题解，参考了灵茶山艾府的题解，豁然开朗。]]></description><category></category></item><item><title><![CDATA[关于rocketMQ踩坑的那些事]]></title><link>https://blog.youkuaiyun.com/crisp0530/article/details/134795578</link><guid>https://blog.youkuaiyun.com/crisp0530/article/details/134795578</guid><author>crisp0530</author><pubDate>Mon, 04 Dec 2023 23:05:56 +0800</pubDate><description><![CDATA[最后终于顺利启动mq啦！在最近，我所写的这个项目需要使用到rocketMQ，为了图方便我便使用的是Windows版本的，但是在使用的过程中首先是发现无法发送消息出去，报错信息为。然后我就根据解决方案一个个进行排查，首先我去修改了配置文件，各种修改都发现没有用，修改了conf中的broker的配置，加了以下这些信息。这一切真的很不容易，我从前一天的下午五点 然后到第二天的晚上八点半才修好，总算成功完结了自己的项目啦！然后我就把 安装文章中说的，把linux的防火墙关掉了，然后后面就是配置mq，也是踩坑不少，]]></description><category></category></item><item><title><![CDATA[算法刷题日志_链表]]></title><link>https://blog.youkuaiyun.com/crisp0530/article/details/130194975</link><guid>https://blog.youkuaiyun.com/crisp0530/article/details/130194975</guid><author>crisp0530</author><pubDate>Wed, 19 Apr 2023 13:36:42 +0800</pubDate><description><![CDATA[这题依旧是使用快慢指针，一个走一步一个走两步，快指针停止循环的条件为当前节点和下一个节点不为空，当快指针停下时，此时slow指针的位置就是目标位置。先让快指针移动k步，然后再让快慢指针都一步一步前进，当快指针移动到空值时，此时慢指针离尾结点距离为k-1，也就是倒数第k个节点的位置了。这里我们使用快慢指针来解决这道题，当链表中有环时，那么快慢指针必定会相遇，如果没有环则不会相遇，链表大都是使用快慢指针来进行解题，然后根据不同题目来确定while循环结束的条件。]]></description><category></category></item><item><title><![CDATA[算法刷题日志]]></title><link>https://blog.youkuaiyun.com/crisp0530/article/details/129927038</link><guid>https://blog.youkuaiyun.com/crisp0530/article/details/129927038</guid><author>crisp0530</author><pubDate>Wed, 12 Apr 2023 23:57:55 +0800</pubDate><description><![CDATA[今天是星期几就加上多少天在最后这题是判断左右回文，且要保持单调性，因为回文数左右对称所以只需要判断左边是否单调递增。先用数组统计每个字母出现次数，再用list来存放答案，循环遍历查找出现次数最多的并存入list之中，大于max就更新list，等于的话同样也可以存入list。]]></description><category></category></item><item><title><![CDATA[算法刷题日志]]></title><link>https://blog.youkuaiyun.com/crisp0530/article/details/129670198</link><guid>https://blog.youkuaiyun.com/crisp0530/article/details/129670198</guid><author>crisp0530</author><pubDate>Sun, 26 Mar 2023 17:37:20 +0800</pubDate><description><![CDATA[这题考察的是并查集，因为数据量过大所以这里我们使用快读快写,当数据的数量级为10^5时，用StreamTokenizer类差不多好像是要比Scanner快个300ms左右。因为可以重复走， 所以遍历整个地图计算所有的可能性并存取到set集合当中，最后输出set的size就是答案数之和。bfs寻找最短路，每一个点产生链接就是为一层，然后不断bfs，每一次入队刚好就可以遍历完一层，用dfs在每个点都进行上下左右四个方向都走一次（当然要注意是否合法）]]></description><category></category></item><item><title><![CDATA[算法刷题日志]]></title><link>https://blog.youkuaiyun.com/crisp0530/article/details/129484893</link><guid>https://blog.youkuaiyun.com/crisp0530/article/details/129484893</guid><author>crisp0530</author><pubDate>Mon, 13 Mar 2023 20:01:45 +0800</pubDate><description><![CDATA[所以可以通过后序遍历找到根的值，然后再到中序序列里找到根的位置再将该树分为左子树与右子树 然后不断递归即可通过中序和后序重塑一棵树。开一个数组v(初始化都是零) 每次对数组v(i - ai + 1, i)做差分操作，对数组v求前缀和 得数组a 如果ai的位置为0，表示它没有操作过，就是0；一棵二叉树可由它的中序遍历（左 中 右）和后序遍历（左 右 中）确定。1.后序遍历的最后一定是该树或子树的根。2.中序遍历根的左右分左子树和右子树。如何由中序和后序确定一棵二叉树。如果大于等于1 ，就是1。]]></description><category></category></item><item><title><![CDATA[算法刷题日志]]></title><link>https://blog.youkuaiyun.com/crisp0530/article/details/129479927</link><guid>https://blog.youkuaiyun.com/crisp0530/article/details/129479927</guid><author>crisp0530</author><pubDate>Sun, 12 Mar 2023 21:20:53 +0800</pubDate><description><![CDATA[二分查找以及字符串哈希，mid之后的答案都是合法的，此题寻找的是最小的K值，所以check的话 如果mid是true的话，那就把r变为mid，反之 l=mid+1，这题就是寻找最小长度下不重复的字符串，所以不等于1的时候就返回FALSE；遍历前缀和数组，边扫描边记录哪些地方可以切第一刀，哪些地方可以切第二刀。如果位置j可以切第二刀，那么它与前面第一刀进行组合，就可以切成三部分。遍历从1~n的每个点，如果这个点是白色，那么把它和它后面那个反转颜色。如果黑色不匹配的话还可以用白色，若白色也不匹配则无解。]]></description><category></category></item><item><title><![CDATA[算法刷题日志]]></title><link>https://blog.youkuaiyun.com/crisp0530/article/details/129178581</link><guid>https://blog.youkuaiyun.com/crisp0530/article/details/129178581</guid><author>crisp0530</author><pubDate>Thu, 23 Feb 2023 16:56:28 +0800</pubDate><description><![CDATA[hs哈希表维护的是s字符串中滑动窗口中各个字符出现多少次，ht哈希表维护的是t字符串各个字符出现多少次。Java中的Map提供了getOrDefault()方法，对不存在的键值提供默认值的方法。滑动窗口，用i和j代表滑动窗口的两端，品种超过2种就不符题意。]]></description><category></category></item><item><title><![CDATA[算法刷题日志——移除元素，双指针]]></title><link>https://blog.youkuaiyun.com/crisp0530/article/details/129154760</link><guid>https://blog.youkuaiyun.com/crisp0530/article/details/129154760</guid><author>crisp0530</author><pubDate>Wed, 22 Feb 2023 12:02:40 +0800</pubDate><description><![CDATA[同时从后向前遍历S和T（i初始为S末尾，j初始为T末尾），记录#的数量，模拟消除的操作，如果#用完了，就开始比较S[i]和S[j]。for（int x :nums) for的增强循环，x就是代表数组元素，k代表的是最多能保留的位数。对于后面的任意数字，能够保留的前提是：与当前写入的位置前面的第 k 个元素进行比较，不相同则保留。双指针遍历，第一次先把所有非0元素提前，然后后面从j位置开始全部变成0。由于是保留 k 个相同数字，对于前 k 个数字，我们可以直接保留。和上题类似，把k改成2即可。]]></description><category></category></item><item><title><![CDATA[算法刷题日志——二分查找]]></title><link>https://blog.youkuaiyun.com/crisp0530/article/details/129140092</link><guid>https://blog.youkuaiyun.com/crisp0530/article/details/129140092</guid><author>crisp0530</author><pubDate>Tue, 21 Feb 2023 12:16:47 +0800</pubDate><description><![CDATA[总结二分查找， while中的条件是（l]]></description><category></category></item><item><title><![CDATA[算法刷题日志]]></title><link>https://blog.youkuaiyun.com/crisp0530/article/details/129097596</link><guid>https://blog.youkuaiyun.com/crisp0530/article/details/129097596</guid><author>crisp0530</author><pubDate>Sun, 19 Feb 2023 23:35:08 +0800</pubDate><description><![CDATA[题解： 双指针算法，两边向中间移动，每次只移动最短的那个， 面积就是 （j-i）*最短的板的高度，然后保存到res，直到两个指针相遇时结束循环。递归，这样就不需要重新建立一个链表了。本题使用dfs解决，不断搜出所有可能性。]]></description><category></category></item><item><title><![CDATA[算法刷题日志]]></title><link>https://blog.youkuaiyun.com/crisp0530/article/details/128759537</link><guid>https://blog.youkuaiyun.com/crisp0530/article/details/128759537</guid><author>crisp0530</author><pubDate>Mon, 06 Feb 2023 13:55:44 +0800</pubDate><description><![CDATA[单调栈，如果当前温度比后面的要小，就是能更新下标就直接更新否则不用动。]]></description><category></category></item></channel></rss>