<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Tthemoon的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Tthemoon</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Tthemoon]]></copyright><item><title><![CDATA[LeetCode Hot100刷题日志D8]]></title><link>https://blog.youkuaiyun.com/Tthemoon/article/details/130107925</link><guid>https://blog.youkuaiyun.com/Tthemoon/article/details/130107925</guid><author>Tthemoon</author><pubDate>Thu, 09 Jul 2026 17:15:00 +0800</pubDate><description><![CDATA[文章摘要：两道滑动窗口算法题的解题思路复盘。第一题计算书店老板使用技巧后最大满意顾客数，拆分为基础满意顾客和窗口内可挽回顾客两部分。第二题通过维护窗口内事件计数表，计算最少丢弃次数以满足库存限制。共同点是使用固定长度窗口，动态维护窗口内关键信息（顾客数/事件计数），通过右移和左移更新窗口状态。解题关键在于明确窗口含义、维护信息及更新时机，展示了滑动窗口处理不同问题的灵活性。]]></description><category></category></item><item><title><![CDATA[LeetCode Hot100刷题日志D7]]></title><link>https://blog.youkuaiyun.com/Tthemoon/article/details/162696990</link><guid>https://blog.youkuaiyun.com/Tthemoon/article/details/162696990</guid><author>Tthemoon</author><pubDate>Wed, 08 Jul 2026 14:41:24 +0800</pubDate><description><![CDATA[文章摘要 本次复盘涵盖了三道滑动窗口相关算法题： 1423.可获得的最大点数：通过枚举左取i张、右取k-i张的组合，利用前缀和思想在O(k)时间内求解最大得分。 2379.得到K个黑块的最少涂色次数：定长滑动窗口统计长度为k的区间内最小白块数，即为最少染色次数。 2841.几乎唯一子数组的最大和：结合哈希表维护窗口内元素频率，动态计算满足不同元素数≥m的长度为k子数组的最大和。 核心总结：滑动窗口的关键在于明确窗口长度、维护信息（如和、计数、频率等）及更新答案的时机。题型多为连续子数组/固定操作次数的极值问]]></description><category></category></item><item><title><![CDATA[LeetCode Hot100刷题日志D6]]></title><link>https://blog.youkuaiyun.com/Tthemoon/article/details/162669856</link><guid>https://blog.youkuaiyun.com/Tthemoon/article/details/162669856</guid><author>Tthemoon</author><pubDate>Tue, 07 Jul 2026 16:55:32 +0800</pubDate><description><![CDATA[本文总结了5道固定长度滑动窗口相关的算法题，核心思想是通过维护固定大小的窗口来高效解决问题。主要题型包括： 字母异位词检测（438题）：使用两个频率数组比较窗口与目标字符串的字符分布 元音计数（1456题）：维护窗口内元音数量，每次滑动更新计数 最大平均数子数组（643题）：转化为求最大子数组和 平均值达标统计（1343题）：将平均值条件转化为和的条件比较 中心平均值计算（2090题）：处理以每个位置为中心的固定半径窗口 关键模板：初始化窗口→处理第一个窗口→滑动窗口（移出左边元素+移入右边元素）→更新结果]]></description><category></category></item><item><title><![CDATA[LeetCode Hot100刷题日志D5]]></title><link>https://blog.youkuaiyun.com/Tthemoon/article/details/162637691</link><guid>https://blog.youkuaiyun.com/Tthemoon/article/details/162637691</guid><author>Tthemoon</author><pubDate>Mon, 06 Jul 2026 16:22:57 +0800</pubDate><description><![CDATA[本文总结了滑动窗口算法的三个经典应用场景。209题通过维护窗口和来寻找最短子数组，初始值设为n+1巧妙处理边界情况；713题利用窗口乘积计算合法子数组数量，通过&quot;买奶茶定理&quot;理解新增子数组数量的计算方法；第3题结合哈希表处理无重复字符的最长子串问题，采用&quot;烧烤签子法则&quot;确保子串连续性。三题均采用双指针技术，右指针扩展窗口，左指针在条件不满足时收缩窗口，展现了滑动窗口算法&quot;吃旧吐新&quot;的核心思想。这些题目体现了滑动窗口在时间复杂度O(n)内高效解决问题]]></description><category></category></item><item><title><![CDATA[LeetCode Hot100刷题日志D4]]></title><link>https://blog.youkuaiyun.com/Tthemoon/article/details/162518988</link><guid>https://blog.youkuaiyun.com/Tthemoon/article/details/162518988</guid><author>Tthemoon</author><pubDate>Thu, 02 Jul 2026 14:14:16 +0800</pubDate><description><![CDATA[文章摘要 本文复盘了两道经典算法题的解题思路： 字母异位词分组：通过将每个字符串按字母排序生成唯一键，利用defaultdict自动分组，避免手动检查键的存在，时间复杂度主要取决于排序操作（O(nklogk)）。 最长连续序列：利用哈希集合实现O(1)查询，通过跳过非序列头部的数字（x-1存在时跳过），确保每个数字仅被访问两次，达到O(n)时间复杂度，并添加剪枝优化提前终止循环。两题均通过空间换时间策略优化性能。]]></description><category></category></item><item><title><![CDATA[LeetCode Hot100刷题日志D3]]></title><link>https://blog.youkuaiyun.com/Tthemoon/article/details/162481630</link><guid>https://blog.youkuaiyun.com/Tthemoon/article/details/162481630</guid><author>Tthemoon</author><pubDate>Wed, 01 Jul 2026 11:17:27 +0800</pubDate><description><![CDATA[本文复盘了两道经典数组算法题： 283.移动零 使用快慢双指针法，快指针寻找非零元素，慢指针作为接收位置 当快指针找到非零元素时与慢指针交换，保持非零元素相对顺序 时间复杂度O(n)，空间复杂度O(1) 53.最大子数组和 采用分治法，将数组递归分割处理 每个区间维护四个状态：总和、左右边界最大和、区间最大和 通过合并子区间状态计算全局最大子段和 时间复杂度O(n)，空间复杂度O(logn) 两道题分别展示了双指针和分治法在数组问题中的应用技巧。]]></description><category></category></item><item><title><![CDATA[LeetCode Hot100刷题日志D2]]></title><link>https://blog.youkuaiyun.com/Tthemoon/article/details/162444271</link><guid>https://blog.youkuaiyun.com/Tthemoon/article/details/162444271</guid><author>Tthemoon</author><pubDate>Tue, 30 Jun 2026 11:42:47 +0800</pubDate><description><![CDATA[本文复盘了两道数组类算法题的解题思路与调试过程。3.盛最多水的容器通过双指针法，初始置于数组两端，每次移动较短柱子以寻找更高边界，利用木桶效应原理计算最大面积。4.接雨水采用动态规划（前后缀分解）和双指针两种解法，前者需正确处理前后缀最大值数组，后者通过左右指针动态比较历史最高值来优化空间。调试中遇到数组覆写、死循环等问题，通过修正指针移动条件和极值计算得以解决，最终实现时间复杂度O(n)的优化方案。]]></description><category></category></item><item><title><![CDATA[LeetCode Hot100刷题日志D1]]></title><link>https://blog.youkuaiyun.com/Tthemoon/article/details/162413196</link><guid>https://blog.youkuaiyun.com/Tthemoon/article/details/162413196</guid><author>Tthemoon</author><pubDate>Mon, 29 Jun 2026 11:48:11 +0800</pubDate><description><![CDATA[本文记录了解决「两数之和」和「三数之和」问题的过程。对于无序数组的两数之和，初始尝试双指针法失败后改用暴力破解（O(n²)）。三数之和问题通过排序+双指针法解决：外层循环固定第一个数，内层使用左右指针寻找匹配组合，并添加剪枝优化（提前终止无效搜索）和去重处理（用while跳过重复元素）。关键点包括：数组必须排序才能使用双指针，去重需配合边界检查防止越界。最终通过调整去重逻辑和添加安全约束成功通过测试。]]></description><category></category></item></channel></rss>