<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[xinrenne的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/xinrenne</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xinrenne]]></copyright><item><title><![CDATA[【二刷】代码随想录算法训练营day01| 二分合集: 704. 二分查找| 35. 搜索插入位置|34. 在排序数组中查找元素的第一个和最后一个位置|69.x的平方根|367.有效的完全平方数]]></title><link>https://blog.youkuaiyun.com/xinrenne/article/details/133769993</link><guid>https://blog.youkuaiyun.com/xinrenne/article/details/133769993</guid><author>xinrenne</author><pubDate>Wed, 11 Oct 2023 15:45:37 +0800</pubDate><description><![CDATA[二分合集]]></description><category></category></item><item><title><![CDATA[代码随想录算法训练营总结篇|完结撒花]]></title><link>https://blog.youkuaiyun.com/xinrenne/article/details/133267089</link><guid>https://blog.youkuaiyun.com/xinrenne/article/details/133267089</guid><author>xinrenne</author><pubDate>Mon, 25 Sep 2023 10:06:31 +0800</pubDate><description><![CDATA[之前刷B站的时候就有学习up推荐算法可以看看代码随想录，当时也关注了代码随想录的公众号，这不刚好给我刷到了训练营的推文，二话不说直接报名。60天下来收获还是非常多的。光笔记在就typora写了16w词，放两张图震撼一下自己，也养成了写博客的习惯，看到博客里一天一天坚持的博文还是很有成就感的。]]></description><category></category></item><item><title><![CDATA[代码随想录算法训练营day60|84.柱状图中最大的矩形 |完结撒花~]]></title><link>https://blog.youkuaiyun.com/xinrenne/article/details/133213649</link><guid>https://blog.youkuaiyun.com/xinrenne/article/details/133213649</guid><author>xinrenne</author><pubDate>Sat, 23 Sep 2023 18:33:00 +0800</pubDate><description><![CDATA[头尾要加0 ,如果数组本身就是升序的，例如[2,4,6,8]，那么入栈之后 都是单调递减，一直都没有走 情况三 计算结果的哪一步，所以最后输出的就是0了,那么结尾加一个0，就会让栈里的所有元素，走到情况三的逻辑。如果数组本身是降序的，例如 [8,6,4,2]，在 8 入栈后，6 开始与8 进行比较，此时我们得到 mid（8），rigt（6），但是得不到 left。之后又将6 加入栈（此时8已经弹出了），然后 就是 4 与 栈口元素 8 进行比较，周而复始，那么计算的最后结果resutl就是0。]]></description><category></category></item><item><title><![CDATA[代码随想录算法训练营day59|503.下一个更大元素II |42.接雨水]]></title><link>https://blog.youkuaiyun.com/xinrenne/article/details/133176380</link><guid>https://blog.youkuaiyun.com/xinrenne/article/details/133176380</guid><author>xinrenne</author><pubDate>Fri, 22 Sep 2023 17:23:52 +0800</pubDate><description><![CDATA[给定一个循环数组（最后一个元素的下一个元素是数组的第一个元素），输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序，这个数字之后的第一个比它更大的数，这意味着你应该循环地搜索它的下一个更大的数。取连个中间小的, 再减去本列高度   就是能接的高度 再*1  就是体积。主要考虑怎么循环,遍历的时候走两遍nums.length*2。的柱子的高度图，计算按此排列的柱子，下雨之后能接多少雨水。思路其实和上面是一样的  也是求左边大的和右边大的。两个遍历,一个遍历右边最高,一个遍历左边最高。]]></description><category></category></item><item><title><![CDATA[代码随想录算法训练营day58|单调栈|739. 每日温度|496.下一个更大元素 I]]></title><link>https://blog.youkuaiyun.com/xinrenne/article/details/133174441</link><guid>https://blog.youkuaiyun.com/xinrenne/article/details/133174441</guid><author>xinrenne</author><pubDate>Fri, 22 Sep 2023 15:59:40 +0800</pubDate><description><![CDATA[例如，给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73]，你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。对于 num1 中的数字 4 ，你无法在第二个数组中找到下一个更大的数字，因此输出 -1。输入: nums1 = [4,1,2], nums2 = [1,3,4,2].输出: [-1,3,-1]]]></description><category></category></item><item><title><![CDATA[代码随想录算法训练营day57|647. 回文子串|516.最长回文子序列]]></title><link>https://blog.youkuaiyun.com/xinrenne/article/details/133068553</link><guid>https://blog.youkuaiyun.com/xinrenne/article/details/133068553</guid><author>xinrenne</author><pubDate>Wed, 20 Sep 2023 10:27:31 +0800</pubDate><description><![CDATA[力扣题目链接给定一个字符串，你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串，即使是由相同的字符组成，也会被视作不同的子串。示例 1：示例 2：提示：输入的字符串长度不会超过 1000 。1.确定dp数组（dp table）以及下标的含义布尔类型的：表示区间范围[i,j] （注意是左闭右闭）的子串是否是回文子串，如果是为true，否则为false。2.确定递推公式在确定递推公式时，就要分析如下几种情况。整体上是两种，就是s[i]与s[j]相等，s[i]与s[j]不相等这两种。当s]]></description><category></category></item><item><title><![CDATA[代码随想录算法训练营day56|583. 两个字符串的删除操作|72. 编辑距离]]></title><link>https://blog.youkuaiyun.com/xinrenne/article/details/133044660</link><guid>https://blog.youkuaiyun.com/xinrenne/article/details/133044660</guid><author>xinrenne</author><pubDate>Tue, 19 Sep 2023 20:22:17 +0800</pubDate><description><![CDATA[本来就不考虑 word2[j - 1]了，那么我在删  word1[i - 1]，是不是就达到两个元素都删除的效果，即。：以i-1为结尾的字符串word1，和以j-1位结尾的字符串word2，想要达到相等，所需要删除元素的最少次数。：word2为空字符串，以i-1为结尾的字符串word1要删除多少个元素，才能和word2相同呢，很明显。情况三：同时删word1[i - 1]和word2[j - 1]，操作的最少次数为。当word1[i - 1] 与 word2[j - 1]相同的时候，]]></description><category></category></item><item><title><![CDATA[代码随想录算法训练营day55|392.判断子序列 |115.不同的子序列]]></title><link>https://blog.youkuaiyun.com/xinrenne/article/details/133040620</link><guid>https://blog.youkuaiyun.com/xinrenne/article/details/133040620</guid><author>xinrenne</author><pubDate>Tue, 19 Sep 2023 19:49:31 +0800</pubDate><description><![CDATA[t[j - 1])，此时相当于t要删除元素，t如果把当前元素t[j - 1]删除，那么。][j]表示以下标i-1为结尾的字符串s和以下标j-1为结尾的字符串t 相同子序列的长度，所以如果。表示以下标i-1为结尾的字符串s，和以下标j-1为结尾的字符串t，相同子序列的长度为。与 字符串s的长度相同说明：s与t的最长相同子序列就是s，那么s 就是 t 的子序列。一定都是1，因为也就是把以i-1为结尾的s，删除所有元素，出现空字符串的个数就是1。：以i-1为结尾的s子序列中出现以j-1为结尾的t的个数为。]]></description><category></category></item><item><title><![CDATA[代码随想录算法训练营day53|1143.最长公共子序列|1035.不相交的线|53. 最大子序和]]></title><link>https://blog.youkuaiyun.com/xinrenne/article/details/133038649</link><guid>https://blog.youkuaiyun.com/xinrenne/article/details/133038649</guid><author>xinrenne</author><pubDate>Tue, 19 Sep 2023 18:16:17 +0800</pubDate><description><![CDATA[而是dp[6]。在回顾一下dp[i]的定义：包括下标i之前的最大连续子序列和为dp[i]。那么我们要找最大的连续子序列，就应该找每一个i为终点的连续最大子序列。]]></description><category></category></item><item><title><![CDATA[代码随想录算法训练营day52|300.最长递增子序列 |674. 最长连续递增序列 |718. 最长重复子数组]]></title><link>https://blog.youkuaiyun.com/xinrenne/article/details/133034886</link><guid>https://blog.youkuaiyun.com/xinrenne/article/details/133034886</guid><author>xinrenne</author><pubDate>Tue, 19 Sep 2023 16:33:17 +0800</pubDate><description><![CDATA[连续递增的子序列 可以由两个下标 l 和  r（l < r）确定，如果对于每个 l <= i < r，都有 nums[i] < nums[i + 1] ，那么子序列  [nums[l], nums[l + 1], …, nums[r - 1], nums[r]] 就是连续递增子序列。例如，[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。给定一个未经排序的整数数组，找到最长且 连续递增的子序列，并返回该序列的长度。每一个i，对应的dp[i]（即最长递增子序列）起始大小至少都是1.]]></description><category></category></item><item><title><![CDATA[代码随想录算法训练营day50|123.买卖股票的最佳时机III|188.买卖股票的最佳时机IV]]></title><link>https://blog.youkuaiyun.com/xinrenne/article/details/132846617</link><guid>https://blog.youkuaiyun.com/xinrenne/article/details/132846617</guid><author>xinrenne</author><pubDate>Wed, 13 Sep 2023 10:10:58 +0800</pubDate><description><![CDATA[现在最大的时候一定是卖出的状态，而两次卖出的状态现金最大一定是最后一次卖出。给定一个整数数组 prices ，它的第 i 个元素 prices[i] 是一支给定的股票在第 i 天的价格。给定一个数组，它的第 i 个元素是一支给定的股票在第 i 天的价格。中 i表示第i天，j为 [0 - 2K+1] 个状态，中 i表示第i天，j为 [0 - 4] 五个状态，第0天做第一次卖出，当天买入，当天卖出，所以。第0天做第一次卖出，当天买入，当天卖出，所以。表示第i天状态j所剩最大现金。第0天做第一次买入的操作，]]></description><category></category></item><item><title><![CDATA[代码随想录算法训练营day49|121. 买卖股票的最佳时机 |122.买卖股票的最佳时机II]]></title><link>https://blog.youkuaiyun.com/xinrenne/article/details/132826351</link><guid>https://blog.youkuaiyun.com/xinrenne/article/details/132826351</guid><author>xinrenne</author><pubDate>Tue, 12 Sep 2023 10:50:25 +0800</pubDate><description><![CDATA[解释：在第 2 天（股票价格 = 1）的时候买入，在第 5 天（股票价格 = 6）的时候卖出，最大利润 = 6-1 = 5。给定一个数组 prices ，它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。因为股票就买卖一次，那么贪心的想法很自然就是取最左最小值，取最右最大值，那么得到的差值就是最大利润。表示第0天持有股票，此时的持有股票就一定是买入股票了，因为不可能有前一天推出来，所以。表示第0天持有股票，此时的持有股票就一定是买入股票了，因为不可能有前一天推出来，所以。]]></description><category></category></item><item><title><![CDATA[代码随想录算法训练营day48|打家劫舍 |198.打家劫舍|213.打家劫舍II|337.打家劫舍 III]]></title><link>https://blog.youkuaiyun.com/xinrenne/article/details/132800497</link><guid>https://blog.youkuaiyun.com/xinrenne/article/details/132800497</guid><author>xinrenne</author><pubDate>Mon, 11 Sep 2023 09:44:42 +0800</pubDate><description><![CDATA[力扣题目链接你是一个专业的小偷，计划偷窃沿街的房屋。每间房内都藏有一定的现金，影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统，如果两间相邻的房屋在同一晚上被小偷闯入，系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组，计算你 不触动警报装置的情况下 ，一夜之内能够偷窃到的最高金额。解释：偷窃 1 号房屋 (金额 = 1) ，然后偷窃 3 号房屋 (金额 = 3)。      偷窃到的最高金额 = 1 + 3 = 4 。提示：0 <= nums.length <= 1000 <= num]]></description><category></category></item><item><title><![CDATA[代码随想录算法训练营day46|139.单词拆分|多重背包基础理论| 背包总结]]></title><link>https://blog.youkuaiyun.com/xinrenne/article/details/132775955</link><guid>https://blog.youkuaiyun.com/xinrenne/article/details/132775955</guid><author>xinrenne</author><pubDate>Sat, 09 Sep 2023 12:20:47 +0800</pubDate><description><![CDATA[动态规划五部曲确定dp数组（dp table）以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组确定递推公式问能否能装满背包（或者最多装多少）：dp[j] = max(dp[j], dp[j - nums[i]] + nums[i]);动态规划：416.分割等和子集动态规划：1049.最后一块石头的重量 II动态规划：494.目标和动态规划：518. 零钱兑换 II动态规划：377.组合总和Ⅳ动态规划：70. 爬楼梯进阶版（完全背包）]]></description><category></category></item><item><title><![CDATA[代码随想录算法训练营day45|70. 爬楼梯(进阶版)|322. 零钱兑换|279.完全平方数]]></title><link>https://blog.youkuaiyun.com/xinrenne/article/details/132755825</link><guid>https://blog.youkuaiyun.com/xinrenne/article/details/132755825</guid><author>xinrenne</author><pubDate>Fri, 08 Sep 2023 10:53:34 +0800</pubDate><description><![CDATA[例如，1、4、9 和 16 都是完全平方数，而 3 和 11 不是。问题:给你一个整数 n ，返回和为 n 的完全平方数的 最少数量。首先凑足总金额为0所需钱币的个数一定是0，那么dp[0] = 0;首先凑足总金额为0所需钱币的个数一定是0，那么dp[0] = 0;给你一个整数 n ，返回和为 n 的完全平方数的 最少数量。考虑到递推公式的特性，dp[j]必须初始化为一个最大的数，考虑到递推公式的特性，dp[j]必须初始化为一个最大的数，dp[j]: 和为j时,完全平方数最少的数量为dp[j]]]></description><category></category></item><item><title><![CDATA[代码随想录算法训练营day44|完全背包 |518.零钱兑换II|377. 组合总和 Ⅳ]]></title><link>https://blog.youkuaiyun.com/xinrenne/article/details/132732870</link><guid>https://blog.youkuaiyun.com/xinrenne/article/details/132732870</guid><author>xinrenne</author><pubDate>Thu, 07 Sep 2023 10:40:33 +0800</pubDate><description><![CDATA[所有可能的组合为： (1, 1, 1, 1) (1, 1, 2) (1, 2, 1) (1, 3) (2, 1, 1) (2, 2) (3, 1)看了这两个图，大家就会理解，完全背包中，两个for循环的先后循序，都不影响计算dp[j]所需要的值（这个值就是下标j之前所对应的dp[j]）。dp[i]（考虑nums[j]）可以由 dp[i - nums[j]]（不考虑nums[j]） 推导出来。dp[j]  就是所有的dp[j - coins[i]]（考虑coins[i]的情况）相加。]]></description><category></category></item><item><title><![CDATA[代码随想录算法训练营day43| 1049.最后一块石头的重量II |494.目标和 | 74.一和零]]></title><link>https://blog.youkuaiyun.com/xinrenne/article/details/132713927</link><guid>https://blog.youkuaiyun.com/xinrenne/article/details/132713927</guid><author>xinrenne</author><pubDate>Wed, 06 Sep 2023 14:00:33 +0800</pubDate><description><![CDATA[力扣题目链接题目难度：中等有一堆石头，每块石头的重量都是正整数。每一回合，从中选出任意两块石头，然后将它们一起粉碎。假设石头的重量分别为 x 和 y，且 x <= y。那么粉碎的可能结果如下：如果 x == y，那么两块石头都会被完全粉碎；如果 x!= y，那么重量为 x 的石头将会完全粉碎，而重量为 y 的石头新重量为 y-x。最后，最多只会剩下一块石头。返回此石头最小的可能重量。如果没有石头剩下，就返回 0。输入：[2,7,4,1,8,1]输出：1。]]></description><category></category></item><item><title><![CDATA[代码随想录算法训练营day42 | 动态规划 背包问题 01背包 二维数组一维数组 |416. 分割等和子集]]></title><link>https://blog.youkuaiyun.com/xinrenne/article/details/132691603</link><guid>https://blog.youkuaiyun.com/xinrenne/article/details/132691603</guid><author>xinrenne</author><pubDate>Tue, 05 Sep 2023 14:35:02 +0800</pubDate><description><![CDATA[以上的讲解可以开发一道面试题目（毕竟力扣上没原题）。就是本文中的题目，要求先实现一个纯二维的01背包，如果写出来了，然后再问为什么两个for循环的嵌套顺序这么写？反过来写行不行？再讲一讲初始化的逻辑。然后要求实现一个一维数组的01背包，最后再问，一维数组的01背包，两个for循环的顺序反过来写行不行？为什么？注意以上问题都是在候选人把代码写出来的情况下才问的。就是纯01背包的题目，都不用考01背包应用类的题目就可以看出候选人对算法的理解程度了。相信大家读完这篇文章，应该对以上问题都有了答案！]]></description><category></category></item><item><title><![CDATA[代码随想录算法训练营day41|343. 整数拆分|96.不同的二叉搜索树]]></title><link>https://blog.youkuaiyun.com/xinrenne/article/details/132664771</link><guid>https://blog.youkuaiyun.com/xinrenne/article/details/132664771</guid><author>xinrenne</author><pubDate>Mon, 04 Sep 2023 10:54:16 +0800</pubDate><description><![CDATA[那么从1遍历j，比较(i  - j) * j和dp[i - j] * j 取最大的。从递归公式上来讲，dp[以j为头结点左子树节点数量] * dp[以j为头结点右子树节点数量] 中以j为头结点左子树节点数量为0，也需要dp[以j为头结点左子树节点数量] = 1， 否则乘法的结果就都变成0了。j的结束条件是 j < i - 1 ，其实 j < i 也是可以的，不过可以节省一步，例如让j = i - 1，的话，其实在 j = 1的时候，这一步就已经拆出来了，重复计算，所以 j < i - 1。]]></description><category></category></item><item><title><![CDATA[代码随想录算法训练营day39|62.不同路径 |63.不同路径 II]]></title><link>https://blog.youkuaiyun.com/xinrenne/article/details/132641244</link><guid>https://blog.youkuaiyun.com/xinrenne/article/details/132641244</guid><author>xinrenne</author><pubDate>Sat, 02 Sep 2023 18:24:03 +0800</pubDate><description><![CDATA[但如果(i, 0) 这条边有了障碍之后，障碍之后（包括障碍）都是走不到的位置了，所以障碍之后的。dp[i][j] ：表示从（0 ，0）出发，到(i, j) 有dp[i][j]条不同的路径。机器人从(0 , 0) 位置出发，到(m - 1, n - 1)终点。一定都是1，因为从(0, 0)的位置到(i, 0)的路径只有一条，那么。表示啥，是从(0, 0)的位置到(i - 1, j)有几条路径，因为从(0, 0)的位置到(i, 0)的路径只有一条，所以。：表示从（0 ，0）出发，到(i, j) 有。]]></description><category></category></item></channel></rss>