<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[纳兰青华的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wxbug</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wxbug]]></copyright><item><title><![CDATA[最长递增子序列：线性 DP 的「三板斧」]]></title><link>https://blog.youkuaiyun.com/wxbug/article/details/163804680</link><guid>https://blog.youkuaiyun.com/wxbug/article/details/163804680</guid><author>wxbug</author><pubDate>Mon, 17 Aug 2026 00:18:08 +0800</pubDate><description><![CDATA[本文讲解了最长递增子序列（LIS）问题的两种解法。基础解法采用动态规划，定义dp[i]为以nums[i]结尾的最长子序列长度，通过双重循环比较前面元素得出结果，时间复杂度O(n²)。进阶解法利用二分查找维护最小末尾数组tails，将时间复杂度优化至O(n log n)。建议面试时先写DP解法确保正确性，再视情况展示二分优化作为加分项。两种方法的空间复杂度均为O(n)。]]></description><category></category></item><item><title><![CDATA[这道子序列计数题，让 90% 的人栽在“相加“上]]></title><link>https://blog.youkuaiyun.com/wxbug/article/details/163514658</link><guid>https://blog.youkuaiyun.com/wxbug/article/details/163514658</guid><author>wxbug</author><pubDate>Thu, 06 Aug 2026 00:08:08 +0800</pubDate><description><![CDATA[这篇文章详细解析了LeetCode第115题"不同的子序列"的动态规划解法。文章首先通过示例解释子序列概念，强调题目问的是"有多少种不同的删法"而非判断是否存在。核心在于区分计数问题（方案数相加）与最优问题（取最值）的思维差异，详细推导了状态转移方程：字符相等时方案数为使用该字符和不使用该字符的方案数之和，不等时只能跳过。文章提供了完整的二维DP实现和空间优化的一维解法，并强调内层循环需从右往左遍历。最后总结这类子序列计数问题的通用思路，指出其与编辑距离等问题的本质区别在于计数问题的方案数相加特性。]]></description><category></category></item><item><title><![CDATA[面试被这道题卡住？5分钟带你搞懂「最小ASCII删除和」]]></title><link>https://blog.youkuaiyun.com/wxbug/article/details/163514648</link><guid>https://blog.youkuaiyun.com/wxbug/article/details/163514648</guid><author>wxbug</author><pubDate>Thu, 06 Aug 2026 00:04:14 +0800</pubDate><description><![CDATA[这篇文章深入浅出地讲解了LeetCode第712题「最小ASCII删除和」的解题思路。文章通过五个步骤清晰地阐述了如何用动态规划解决这个问题： 定义状态：dp[i][j]表示使两个字符串前i和j个字符相等所需删除的最小ASCII和 状态转移：分字符相等（直接继承前面结果）和不相等（选择删除代价较小的方案）两种情况 边界初始化：处理空字符串的情况 遍历顺序：从左到右、从上到下填表 验证示例：通过具体例子手动填表验证正确性 文章还比较了该问题与编辑距离的异同，并提供了完整的Java实现代码。]]></description><category></category></item><item><title><![CDATA[《字符串相亲记：如何在 O(n²) 内找到你的“完美镜像“？》]]></title><link>https://blog.youkuaiyun.com/wxbug/article/details/163421963</link><guid>https://blog.youkuaiyun.com/wxbug/article/details/163421963</guid><author>wxbug</author><pubDate>Sun, 02 Aug 2026 23:56:21 +0800</pubDate><description><![CDATA[这篇技术文章以幽默风趣的方式讲解了求解字符串最长回文子序列的三种动态规划解法。文章首先通过生活化的比喻引入回文概念，然后详细介绍了区间DP、空间优化的一维DP以及转化为LCS问题的三种解法思路，并提供了相应的Java代码实现。每种解法都配有形象的状态转移解释和复杂度分析，最后用表格对比总结了三种方法的优劣。全文将抽象的算法问题具象化，兼顾了技术深度和可读性，适合算法学习者理解动态规划在字符串问题中的应用。]]></description><category></category></item><item><title><![CDATA[拼图大师：从“暴力尝试“到“动态规划“的拆字艺术]]></title><link>https://blog.youkuaiyun.com/wxbug/article/details/163421957</link><guid>https://blog.youkuaiyun.com/wxbug/article/details/163421957</guid><author>wxbug</author><pubDate>Sun, 02 Aug 2026 23:55:35 +0800</pubDate><description><![CDATA[摘要 LeetCode 139 单词拆分问题要求判断字符串是否能由给定词典中的单词拼接而成。文章通过拼图类比，介绍了两种解法： 记忆化搜索：采用DFS思路，从左到右尝试匹配，用memo数组记录中间结果避免重复计算。时间复杂度O(nml)，空间O(n)。 动态规划：定义dp[i]表示前i个字符能否拆分，自底向上填充dp表。通过检查词典单词与子串匹配来更新状态。与DFS同复杂度但更直观。 两种方法各有优势：记忆化搜索更符合直觉，动态规划代码更简洁。]]></description><category></category></item><item><title><![CDATA[回文侦探：三种境界破解最长回文子串]]></title><link>https://blog.youkuaiyun.com/wxbug/article/details/163421945</link><guid>https://blog.youkuaiyun.com/wxbug/article/details/163421945</guid><author>wxbug</author><pubDate>Sun, 02 Aug 2026 23:54:44 +0800</pubDate><description><![CDATA[本文介绍了解决最长回文子串问题的三种方法：暴力枚举（O(n³)）、中心扩展法（O(n²)，面试首选）和动态规划（O(n²)），重点讲解了最优的Manacher算法（O(n)）。中心扩展法通过对称扩展每个可能的中心点；动态规划利用子问题的解构建更大回文；Manacher算法通过预处理和对称性优化实现线性时间复杂度。每种方法都附有Java实现代码和复杂度分析，帮助理解从基础到最优解的渐进式优化过程。]]></description><category></category></item><item><title><![CDATA[最大正方形问题]]></title><link>https://blog.youkuaiyun.com/wxbug/article/details/163253306</link><guid>https://blog.youkuaiyun.com/wxbug/article/details/163253306</guid><author>wxbug</author><pubDate>Tue, 28 Jul 2026 00:51:44 +0800</pubDate><description><![CDATA[这篇文章探讨了LeetCode 221题"最大正方形"的两种动态规划解法。文章首先通过像素画布的比喻引入问题，随后详细分析了二维DP解法，包括状态定义、转移方程、初始化和遍历顺序，并提供了Java代码实现。接着，文章揭示了更优的一维滚动数组解法，指出其空间优化关键在于仅保存必要的历史状态，同时解释了如何处理左上角状态的保存问题。两种解法的时间复杂度均为O(mn)，但空间复杂度从O(mn)优化到了O(n)。文章通过生动的比喻和清晰的图表帮助读者理解动态规划在这类几何问题中的应用。]]></description><category></category></item><item><title><![CDATA[三角形最小路径和问题]]></title><link>https://blog.youkuaiyun.com/wxbug/article/details/163253299</link><guid>https://blog.youkuaiyun.com/wxbug/article/details/163253299</guid><author>wxbug</author><pubDate>Tue, 28 Jul 2026 00:50:47 +0800</pubDate><description><![CDATA[摘要 本文以LeetCode 120题"三角形最小路径和"为例，深入剖析动态规划的三种实现方式。首先揭示贪心算法的局限性，指出局部最优不等于全局最优。随后展示三种DP解法：1)基础二维DP，空间O(n²)；2)优化一维DP，通过反向遍历实现空间压缩至O(n)；3)终极自底向上解法，利用虚拟地面层和正向遍历，代码最简洁。文章通过生动比喻和可视化过程，强调状态转移的关键逻辑和遍历方向的重要性，最终将空间复杂度优化到极致。这道题完美展现了从暴力解到最优化的动态规划思维演进过程。]]></description><category></category></item><item><title><![CDATA[下降路径最小和问题]]></title><link>https://blog.youkuaiyun.com/wxbug/article/details/163253287</link><guid>https://blog.youkuaiyun.com/wxbug/article/details/163253287</guid><author>wxbug</author><pubDate>Tue, 28 Jul 2026 00:49:45 +0800</pubDate><description><![CDATA[这篇文章通过LeetCode 931题"下降路径最小和"，生动讲解了动态规划的空间优化艺术。作者首先用滑雪的比喻引入问题，指出贪心算法的局限性，然后展示了二维DP的标准解法（O(n²)空间）。接着重点介绍了两种空间优化方法：使用临时数组的滚动数组法（O(n)空间）和更高级的原地更新法（仅需一个prev变量）。文章通过清晰的图示和代码示例，深入浅出地解释了状态转移过程中如何维护prev变量来避免数据覆盖问题，帮助读者掌握动态规划空间优化的核心技巧。]]></description><category></category></item><item><title><![CDATA[N皇后问题：从入门到精通，一篇文章让你彻底搞懂！]]></title><link>https://blog.youkuaiyun.com/wxbug/article/details/163088022</link><guid>https://blog.youkuaiyun.com/wxbug/article/details/163088022</guid><author>wxbug</author><pubDate>Wed, 22 Jul 2026 00:16:37 +0800</pubDate><description><![CDATA[本文深入解析N皇后问题的两种解法：朴素递归法和位运算优化法。N皇后问题要求在N×N棋盘上摆放N个互不攻击的皇后。解法一采用回溯思想，逐行放置皇后并检查合法性，时间复杂度为O(N!)。解法二利用位运算巧妙优化，通过三个位掩码（列限制、左右对角线限制）快速判断可放置位置，将空间复杂度降至O(1)，时间效率显著提升。文章包含详细代码解析、数学原理说明和可视化示意图，特别适合算法学习者和面试备考者。对于4皇后问题，文中给出了具体的解示例和位运算参数图解，帮助读者直观理解这一经典回溯问题。]]></description><category></category></item><item><title><![CDATA[除权除息处理算法：当“公司行动“悄悄扰动你的交易指令（附完整复权因子表）]]></title><link>https://blog.youkuaiyun.com/wxbug/article/details/162945541</link><guid>https://blog.youkuaiyun.com/wxbug/article/details/162945541</guid><author>wxbug</author><pubDate>Thu, 16 Jul 2026 21:30:36 +0800</pubDate><description><![CDATA[摘要：本文详解公司行动（如现金分红、送转股、配股等）对交易指令的影响及复权因子算法。核心是通过价格和数量复权因子调整T-1数据，确保T日权重精准。关键结论：①现金分红需用除息价调整价格因子；②送转股需同步调整价格和数量因子；③配股/以股代息需人工确认参与方式；④拆合股按比例反向调整。文末提供完整复权因子表，并强调含税股息、差异化分红等易错点。该算法可避免因公司行动导致的权重偏离问题。]]></description><category></category></item><item><title><![CDATA[在 PVE 上通过 LXC 部署 Ubuntu 24.04：为 OpenClaw 打造轻量高效的 AI 环境]]></title><link>https://blog.youkuaiyun.com/wxbug/article/details/162675591</link><guid>https://blog.youkuaiyun.com/wxbug/article/details/162675591</guid><author>wxbug</author><pubDate>Wed, 08 Jul 2026 00:28:23 +0800</pubDate><description><![CDATA[摘要：在Proxmox VE (PVE) 上通过LXC容器部署Ubuntu 24.04，为AI应用OpenClaw打造轻量高效的运行环境。LXC容器相比虚拟机具有启动快（约1秒）、资源占用低（内存30-100MB）等优势，且PVE对Ubuntu 24.04的支持已完善。文章对比了Ubuntu 22.04和24.04的差异，建议AI应用优先选择更稳定的22.04，但24.04对新硬件支持更好。详细介绍了镜像下载、模板准备、容器创建步骤，并讨论了特权容器的选择权衡，强调其便捷性（如GPU挂载）与安全性的平衡。]]></description><category></category></item><item><title><![CDATA[CentOS Stream 9 下载与安装完全指南：为什么它是当前最稳妥的选择？]]></title><link>https://blog.youkuaiyun.com/wxbug/article/details/162675367</link><guid>https://blog.youkuaiyun.com/wxbug/article/details/162675367</guid><author>wxbug</author><pubDate>Wed, 08 Jul 2026 00:01:17 +0800</pubDate><description><![CDATA[《CentOS Stream 9完全指南：优势分析与安装教程》摘要： CentOS Stream 9作为RHEL 9的上游开发分支，已成为CentOS 7停更后的主流替代方案。其支持周期至2027年，采用5.14内核，软件包较新且与RHEL 9高度兼容。相比CentOS 7/8已终止支持，Stream 9在稳定性和新特性间取得平衡，而Stream 10则更适合测试环境。 安装指南包含：CPU兼容性确认、国内镜像下载（推荐阿里云/清华源）、ISO类型选择（boot.iso或dvd1.iso）及验证方法。]]></description><category></category></item><item><title><![CDATA[货币找零问题：动态规划的经典应用]]></title><link>https://blog.youkuaiyun.com/wxbug/article/details/162213552</link><guid>https://blog.youkuaiyun.com/wxbug/article/details/162213552</guid><author>wxbug</author><pubDate>Mon, 22 Jun 2026 23:55:10 +0800</pubDate><description><![CDATA[货币找零问题的动态规划解法 货币找零问题是一个经典的动态规划应用，目标是用最少数量的货币组合出指定金额。问题描述为：给定货币面额数组arr和目标金额aim，求组成aim的最少货币数。 解法演进： 暴力递归：尝试所有组合，时间复杂度O(aim^N)，存在大量重复计算。 记忆化搜索：通过缓存子问题结果优化，时间复杂度降为O(N×aim²)。 动态规划： 二维DP：定义dp[i][j]为前i种货币组成j的最少数量，通过状态转移方程优化内层循环。]]></description><category></category></item><item><title><![CDATA[加油站问题：环形数组中的良好出发点]]></title><link>https://blog.youkuaiyun.com/wxbug/article/details/162078386</link><guid>https://blog.youkuaiyun.com/wxbug/article/details/162078386</guid><author>wxbug</author><pubDate>Thu, 18 Jun 2026 00:18:58 +0800</pubDate><description><![CDATA[本文介绍了环形加油站问题的优化解法。题目要求在给定加油站油量和距离数组的情况下，找出所有能够完成一圈行驶的出发点（良好出发点）。相比暴力解的O(N²)复杂度，文章提出了使用前缀和与单调队列的O(N)优化方案： 构建扩展净油量数组（长度2N）并计算前缀和 使用单调队列维护滑动窗口最小值 对每个起始点i，检查窗口[i,i+N-1]内最小值是否≥prefix[i-1] 该算法通过环形数组扩展、前缀和转换和单调队列优化，将时间复杂度从O(N²)降为O(N)。]]></description><category></category></item><item><title><![CDATA[滑动窗口进阶：统计满足条件的子数组数量]]></title><link>https://blog.youkuaiyun.com/wxbug/article/details/162047778</link><guid>https://blog.youkuaiyun.com/wxbug/article/details/162047778</guid><author>wxbug</author><pubDate>Wed, 17 Jun 2026 00:22:53 +0800</pubDate><description><![CDATA[滑动窗口进阶：统计满足条件的子数组数量 本文介绍了一种高效算法，用于统计数组中满足"子数组最大值与最小值之差≤num"条件的子数组数量。核心思路是结合滑动窗口和单调队列： 使用双指针(L,R)维护窗口，两个单调队列分别跟踪窗口内的最大值和最小值 对于每个左边界L，尽可能扩展右边界R，直到不满足条件 统计以L为左边界的有效子数组数量为R-L 时间复杂度从暴力解法的O(n³)优化到O(n) 算法关键点在于利用单调队列高效维护窗口极值，并利用极值差的单调性避免不必要的计算。]]></description><category></category></item><item><title><![CDATA[滑动窗口最大值问题：单调队列的巧妙应用]]></title><link>https://blog.youkuaiyun.com/wxbug/article/details/162016979</link><guid>https://blog.youkuaiyun.com/wxbug/article/details/162016979</guid><author>wxbug</author><pubDate>Tue, 16 Jun 2026 00:31:09 +0800</pubDate><description><![CDATA[本文介绍了使用单调队列高效解决滑动窗口最大值问题的方法。通过维护一个单调递减的双端队列存储元素索引，算法能在O(n)时间复杂度内找到每个窗口的最大值。关键步骤包括：1)维护队列单调性，移除小于新元素的队尾元素；2)检查队首元素是否超出窗口范围；3)当窗口形成时记录队首最大值。相比暴力解法的O(n×w)复杂度，这种优化方案显著提升了效率，特别适合处理大规模数据。文章结合示例详细演示了算法执行过程，并分析了复杂度，最后总结了单调队列在滑动窗口问题中的通用性。]]></description><category></category></item><item><title><![CDATA[《基金运作的五大支柱：人、规、流、投、登》]]></title><link>https://blog.youkuaiyun.com/wxbug/article/details/156871579</link><guid>https://blog.youkuaiyun.com/wxbug/article/details/156871579</guid><author>wxbug</author><pubDate>Mon, 12 Jan 2026 20:47:58 +0800</pubDate><description><![CDATA[摘要：开放式基金的运作涉及多方当事人，包括投资者、管理人、托管人等，并受证监会和交易所的严格监管。基金运作包括募集申请、投资管理、信息披露等环节，其中投资管理需遵循风险控制机制和法律法规要求，如投资比例限制等。注册登记机构负责基金账户管理、过户登记等职能，确保基金交易和资金流动的合规性。整体而言，基金运作流程严密，旨在保障投资者权益。（149字）]]></description><category></category></item><item><title><![CDATA[《投资者的核心工具箱：6种你必须知道的证券交易品种》终篇]]></title><link>https://blog.youkuaiyun.com/wxbug/article/details/156709447</link><guid>https://blog.youkuaiyun.com/wxbug/article/details/156709447</guid><author>wxbug</author><pubDate>Mon, 12 Jan 2026 20:02:38 +0800</pubDate><description><![CDATA[证券投资基金是一种集合投资工具，通过汇集投资者资金，由专业机构管理运作，投资于股票、债券等证券。主要分为封闭式和开放式基金，前者规模固定、有期限，在交易所交易；后者规模可变，可随时申购赎回。此外还有股票型、债券型、货币型等不同投资标的的基金，以及LOF、ETF等特殊类型。基金运作涉及管理费、托管费等费用，收益通过分红分配，净值每日计算。开放式基金投资需开设基金账户和交易账户，可进行申购、赎回等操作。不同基金类型在流动性、风险收益特征等方面存在差异，投资者应根据自身需求选择合适的基金产品。]]></description><category></category></item><item><title><![CDATA[《投资者的核心工具箱：6种你必须知道的证券交易品种》中篇]]></title><link>https://blog.youkuaiyun.com/wxbug/article/details/156611626</link><guid>https://blog.youkuaiyun.com/wxbug/article/details/156611626</guid><author>wxbug</author><pubDate>Wed, 07 Jan 2026 08:33:43 +0800</pubDate><description><![CDATA[债券和回购基本概念须知]]></description><category></category></item></channel></rss>