<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ydd100100的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ydd100100</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ydd100100]]></copyright><item><title><![CDATA[盛最多水的容器]]></title><link>https://blog.youkuaiyun.com/ydd100100/article/details/164061587</link><guid>https://blog.youkuaiyun.com/ydd100100/article/details/164061587</guid><author>ydd100100</author><pubDate>Tue, 25 Aug 2026 17:18:33 +0800</pubDate><description><![CDATA[从最大宽度开始；每轮计算当前面积；宽度缩小时，只有移动较短边才可能提高有效高度；两个指针相遇后结束。双指针把所有线对的枚举从O(n²)优化为O(n)，同时保持O(1)额外空间。更多技术实践与案例，可在 📗【姚前述】中查阅。]]></description><category></category></item><item><title><![CDATA[正则表达式匹配]]></title><link>https://blog.youkuaiyun.com/ydd100100/article/details/164025275</link><guid>https://blog.youkuaiyun.com/ydd100100/article/details/164025275</guid><author>ydd100100</author><pubDate>Mon, 24 Aug 2026 15:53:56 +0800</pubDate><description><![CDATA[dp[i][j]：s 的前 i 个字符，是否能被 p 的前 j 个字符完整匹配。普通字符或点号匹配时，继承左上角状态；星号匹配零次时跳过两个模式字符；星号匹配一次或多次时，消费一个字符串字符并保留模式位置。只要理解和分别代表什么，整个动态规划就会非常清晰。更多技术实践与案例，可在 📗【姚前述】中查阅。]]></description><category></category></item><item><title><![CDATA[回文数 Java 题解：只反转后一半数字，避免溢出]]></title><link>https://blog.youkuaiyun.com/ydd100100/article/details/163923257</link><guid>https://blog.youkuaiyun.com/ydd100100/article/details/163923257</guid><author>ydd100100</author><pubDate>Thu, 20 Aug 2026 17:21:58 +0800</pubDate><description><![CDATA[负数直接返回false；非零且末尾为零的数字直接返回false；不断将原数字个位追加到反转部分；到达数字中间时停止；偶数位比较两半是否相等；奇数位去掉中间数字后再比较。该方法不创建字符串、不完整反转整数，空间复杂度为O(1)，也避免了整数溢出。更多技术实践与案例，可在 📗【姚前述】中查阅。]]></description><category></category></item><item><title><![CDATA[字符串转换整数]]></title><link>https://blog.youkuaiyun.com/ydd100100/article/details/163895088</link><guid>https://blog.youkuaiyun.com/ydd100100/article/details/163895088</guid><author>ydd100100</author><pubDate>Wed, 19 Aug 2026 20:48:24 +0800</pubDate><description><![CDATA[跳过前导空格；读取至多一个符号；连续读取数字；遇到其他字符立即停止；在追加数字前预判边界；越界时返回对应的 32 位极值。使用负数累计可以在不依赖 64 位整数的情况下，统一处理2147483647和两个不对称边界。更多技术实践与案例，可在 📗【姚前述】中查阅。]]></description><category></category></item><item><title><![CDATA[整数反转 Java 题解]]></title><link>https://blog.youkuaiyun.com/ydd100100/article/details/163863665</link><guid>https://blog.youkuaiyun.com/ydd100100/article/details/163863665</guid><author>ydd100100</author><pubDate>Tue, 18 Aug 2026 21:03:04 +0800</pubDate><description><![CDATA[整数反转的核心流程很简单：取个位、删个位、追加到结果。不能使用 64 位整数；不能先计算后判断溢出；正数和负数的最后一位阈值不同；不能用取绝对值的方式处理最小整数。掌握“运算前检查边界”的思路后，这类固定范围的数值题就能写出安全、稳定的实现。更多技术实践与案例，可在 📗【姚前述】中查阅。]]></description><category></category></item><item><title><![CDATA[Z 字形变换 Java 题解：按行模拟与方向切换]]></title><link>https://blog.youkuaiyun.com/ydd100100/article/details/163827303</link><guid>https://blog.youkuaiyun.com/ydd100100/article/details/163827303</guid><author>ydd100100</author><pubDate>Mon, 17 Aug 2026 15:57:00 +0800</pubDate><description><![CDATA[每一行使用一个；表示向下，-1表示向上；到达第一行或最后一行时切换方向；遍历完成后逐行拼接。这种写法时间复杂度为O(n)，逻辑清晰，也能自然处理不同的行数。更多技术实践与案例，可在 📗【姚前述】中查阅。]]></description><category></category></item><item><title><![CDATA[最长回文子串 Java 题解，中心扩展法详解]]></title><link>https://blog.youkuaiyun.com/ydd100100/article/details/163700824</link><guid>https://blog.youkuaiyun.com/ydd100100/article/details/163700824</guid><author>ydd100100</author><pubDate>Wed, 12 Aug 2026 16:21:16 +0800</pubDate><description><![CDATA[奇数长度回文：只有一个中心字符，例如aba的中心是b；偶数长度回文：中心位于两个字符之间，例如abba的中心是bb之间的间隙。因此，遍历字符串时，每个位置都要尝试两种中心。每个字符尝试一次奇数中心；每个字符间隙尝试一次偶数中心；左右字符相等就继续扩展；记录遇到的最长区间并返回。这套方法时间复杂度为O(n²)、空间复杂度为O(1)，实现简单且不容易出错。需要进一步优化到O(n)时，再学习 Manacher 算法即可。更多技术实践与案例，可在 📗【姚前述】中查阅。]]></description><category></category></item><item><title><![CDATA[寻找两个正序数组的中位数 Java 题解，二分分割详解]]></title><link>https://blog.youkuaiyun.com/ydd100100/article/details/163668284</link><guid>https://blog.youkuaiyun.com/ydd100100/article/details/163668284</guid><author>ydd100100</author><pubDate>Tue, 11 Aug 2026 15:00:25 +0800</pubDate><description><![CDATA[始终在较短数组上进行二分；根据左半区总长度计算另一个数组的分割位置；使用四个分割边界判断左右区域是否有序；根据总长度的奇偶性计算中位数；使用long避免偶数长度取平均值时溢出。理解分割线后，这道困难题会从复杂的数组合并问题，变成一个标准的二分查找问题。更多技术实践与案例，可在 📗【姚前述】中查阅。]]></description><category></category></item><item><title><![CDATA[无重复字符的最长子串 Java 题解，滑动窗口一次遍历]]></title><link>https://blog.youkuaiyun.com/ydd100100/article/details/163658213</link><guid>https://blog.youkuaiyun.com/ydd100100/article/details/163658213</guid><author>ydd100100</author><pubDate>Tue, 11 Aug 2026 10:16:14 +0800</pubDate><description><![CDATA[窗口始终代表连续子串；哈希表记录每个字符最近一次出现的位置；遇到窗口内的重复字符时移动左边界；使用Math.max保证左边界永不回退。掌握这个模板后，还可以继续解决“长度最小的子数组”“字符串排列”“覆盖子串”等一系列连续区间问题。更多技术实践与案例，可在 📗【姚前述】中查阅。]]></description><category></category></item><item><title><![CDATA[两数相加 Java 题解，链表如何模拟竖式加法]]></title><link>https://blog.youkuaiyun.com/ydd100100/article/details/163641639</link><guid>https://blog.youkuaiyun.com/ydd100100/article/details/163641639</guid><author>ydd100100</author><pubDate>Mon, 10 Aug 2026 17:01:37 +0800</pubDate><description><![CDATA[9] + [1]的正确结果是[0, 1]。循环结束后必须保留最后的进位，或者像推荐答案一样直接把carry!= 0放入循环条件。链表逆序存储，头节点就是个位，可以直接从头开始计算；使用carry保存上一位产生的进位；长度不足的链表按0处理；两个链表结束后，仍然要检查最后的进位。掌握虚拟头节点、双指针和进位处理后，这道题的代码就会变得非常自然。更多技术实践与案例，可在 📗【姚前述】中查阅。]]></description><category></category></item><item><title><![CDATA[两数之和 Java 题解，从暴力枚举到哈希表一次遍历]]></title><link>https://blog.youkuaiyun.com/ydd100100/article/details/163637520</link><guid>https://blog.youkuaiyun.com/ydd100100/article/details/163637520</guid><author>ydd100100</author><pubDate>Mon, 10 Aug 2026 14:17:46 +0800</pubDate><description><![CDATA[两数之和 Java 题解，从暴力枚举到哈希表一次遍历]]></description><category></category></item></channel></rss>