<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[记录个人成长]]></title><description><![CDATA[用于记录学习]]></description><link>https://blog.youkuaiyun.com/HECHENNIU</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; HECHENNIU]]></copyright><item><title><![CDATA[LeetCode 274 H 指数 C 语言解题分析]]></title><link>https://blog.youkuaiyun.com/HECHENNIU/article/details/168975525</link><guid>https://blog.youkuaiyun.com/HECHENNIU/article/details/168975525</guid><author>HECHENNIU</author><pubDate>Sat, 24 Oct 2026 17:55:27 +0800</pubDate><description><![CDATA[本文分析LeetCode 274.H指数题中插入排序实现的缺陷，指出初版遗漏写回逻辑、改进版存在越界访问与返回值错误。核心结论：排序方向必须与判定条件一致（降序排列后用citations[i] &gt;= i+1），否则无法正确求解。推荐使用降序插入排序或qsort配合正确判定逻辑，确保返回最大满足条件的论文数量h，而非引用次数或中位数。强调算法需区分“引用次数”与“论文数量”，避免语义混淆。]]></description><category></category></item><item><title><![CDATA[LeetCode 45 跳跃游戏 II C 语言解题分析]]></title><link>https://blog.youkuaiyun.com/HECHENNIU/article/details/168974869</link><guid>https://blog.youkuaiyun.com/HECHENNIU/article/details/168974869</guid><author>HECHENNIU</author><pubDate>Sat, 24 Oct 2026 17:02:08 +0800</pubDate><description><![CDATA[具体过程：i = 0 时，j = 0 得到 nums[0] - 0 = 2，best 变成 2，f 变成 0；当 i 走到 end，说明当前层已经扫描完，必须再跳一次，于是 s 加一，并把 end 推进到 best。整理版保留参考代码的算法，只做了两点改善：变量名直接表达含义，并删除了外层多余的 i 声明，避免内层 for 的 i 遮蔽外层变量。即使把比较式改成 j + nums[j]，也不能只靠这一个改动解决问题：best 仍然需要按当前跳跃层重置，循环仍需要限制到数组末尾以内，并且要在到达终点时停止。]]></description><category></category></item><item><title><![CDATA[LeetCode 55 跳跃游戏 C 语言解题分析]]></title><link>https://blog.youkuaiyun.com/HECHENNIU/article/details/168973558</link><guid>https://blog.youkuaiyun.com/HECHENNIU/article/details/168973558</guid><author>HECHENNIU</author><pubDate>Sat, 24 Oct 2026 15:25:49 +0800</pubDate><description><![CDATA[本文分析跳跃游戏（LeetCode 55）的三种实现：初版逐零回溯、改进版优化但仍有缺陷，最终推荐贪心法。核心思想是维护当前最远可达下标 farthest，遍历中若 i &gt; farthest 则不可达，否则更新 farthest = max(farthest, i + nums[i])。该方法时间复杂度 O(n)，空间 O(1)，正确处理边界如单元素、零值、恰好跳跃等，避免了回溯带来的 O(n²) 复杂度与逻辑错误。建议直接采用贪心实现以确保稳定性与效率。]]></description><category></category></item><item><title><![CDATA[Codewars：Rot13（C）解题分析]]></title><link>https://blog.youkuaiyun.com/HECHENNIU/article/details/168345714</link><guid>https://blog.youkuaiyun.com/HECHENNIU/article/details/168345714</guid><author>HECHENNIU</author><pubDate>Sun, 18 Oct 2026 22:07:44 +0800</pubDate><description><![CDATA[本文分析了C语言实现ROT13函数的完整过程，指出初版仅计算长度、第二版存在边界判断错误与非字母截断问题，最终版修正了关键缺陷：重置索引、正确处理大小写边界、保留非字母字符并显式添加终止符。推荐使用size_t、模运算和分配失败检查，提升代码安全性与可读性。最终版本在常规测试下通过，时间复杂度为O(n)，空间复杂度为O(n)，符合题目要求。]]></description><category></category></item><item><title><![CDATA[LeetCode 122：买卖股票的最佳时机 II（C）解题分析]]></title><link>https://blog.youkuaiyun.com/HECHENNIU/article/details/168343072</link><guid>https://blog.youkuaiyun.com/HECHENNIU/article/details/168343072</guid><author>HECHENNIU</author><pubDate>Sun, 18 Oct 2026 18:23:56 +0800</pubDate><description><![CDATA[题目122要求在无限次交易条件下最大化股票利润。用户代码误将问题理解为“最多两次交易”，通过分割数组枚举两段最大利润，但无法处理三次及以上交易，且存在“将价格当利润”等错误。正确解法应采用贪心策略：累加所有相邻正差值，即每天若价格上涨则买入卖出，等价于持有至波峰。该方法时间复杂度O(n)，空间O(1)，可覆盖任意多次交易，且逻辑简洁正确。]]></description><category></category></item><item><title><![CDATA[Codewars：Last digit of a large number（C）解题分析]]></title><link>https://blog.youkuaiyun.com/HECHENNIU/article/details/168342580</link><guid>https://blog.youkuaiyun.com/HECHENNIU/article/details/168342580</guid><author>HECHENNIU</author><pubDate>Sun, 18 Oct 2026 17:34:28 +0800</pubDate><description><![CDATA[本题要求计算大数幂 $ a^b $ 的个位数字，核心思路是：个位仅由 $ a $ 的个位决定，指数 $ b $ 仅需取模 4。通过扫描字符串边读边对 4 取模，避免处理超长整数。特殊处理 $ 0^0 = 1 $ 和底数为 0 的情况。使用二维查表法预存各数字循环规律，实现 $ O(|a| + |b|) $ 时间复杂度与 $ O(1) $ 空间复杂度，高效且正确。]]></description><category></category></item><item><title><![CDATA[LeetCode 121 买卖股票的最佳时机]]></title><link>https://blog.youkuaiyun.com/HECHENNIU/article/details/168132883</link><guid>https://blog.youkuaiyun.com/HECHENNIU/article/details/168132883</guid><author>HECHENNIU</author><pubDate>Fri, 16 Oct 2026 13:48:43 +0800</pubDate><description><![CDATA[本文分析了股票买卖问题的两版错误C代码及改进过程，指出第一版因错误预判单调递增数组导致返回0，且暴力枚举存在边界遗漏与超时问题。第二版虽修正部分逻辑，仍无法避免O(n²)复杂度。最终给出正确解法：一次遍历维护历史最低价与最大利润，时间复杂度O(n)，空间O(1)，满足大数据要求。强调易错点：漏第一天买入、未及时更新最低价、盲目使用暴力算法。]]></description><category></category></item><item><title><![CDATA[LeetCode 189 轮转数组 代码迭代分析文档（Markdown）]]></title><link>https://blog.youkuaiyun.com/HECHENNIU/article/details/168128390</link><guid>https://blog.youkuaiyun.com/HECHENNIU/article/details/168128390</guid><author>HECHENNIU</author><pubDate>Fri, 16 Oct 2026 12:21:07 +0800</pubDate><description><![CDATA[本文分析了轮转数组问题的三版手写C代码，指出迭代中常见的错误：变长数组赋值非法、下标公式偏移（多+1）、未取模导致越界及遗漏回写。最终优化为正确辅助数组解法，通过k %= numsSize和(i+k)%numsSize统一公式，实现逻辑清晰的O(n)时间、O(n)空间解法。进一步提出进阶的三次反转法，通过反转整个数组、前k个元素、后n-k个元素，实现原地O(1)空间复杂度，满足面试要求。对比表明，辅助数组法易懂但占内存，反转法高效且原地，推荐掌握。]]></description><category></category></item><item><title><![CDATA[常用排序算法选型与应用讲解]]></title><link>https://blog.youkuaiyun.com/HECHENNIU/article/details/168125717</link><guid>https://blog.youkuaiyun.com/HECHENNIU/article/details/168125717</guid><author>HECHENNIU</author><pubDate>Fri, 16 Oct 2026 11:43:36 +0800</pubDate><description><![CDATA[本文系统梳理七种常用排序算法：插入、快速、归并、堆、计数、桶、基数排序，从时间空间复杂度、稳定性、适用场景等方面进行对比分析。强调根据数据规模、分布特征、内存限制与稳定性需求综合选型：小规模用插入排序，通用场景选快速排序，需稳定选归并，内存受限选堆排序，整数范围小可用计数、桶或基数排序。建议工程中优先使用语言内置排序，手写仅用于学习与特殊场景。]]></description><category></category></item><item><title><![CDATA[80. 删除有序数组中的重复项 II]]></title><link>https://blog.youkuaiyun.com/HECHENNIU/article/details/168030069</link><guid>https://blog.youkuaiyun.com/HECHENNIU/article/details/168030069</guid><author>HECHENNIU</author><pubDate>Thu, 15 Oct 2026 21:17:04 +0800</pubDate><description><![CDATA[本文分析了LeetCode“Remove Duplicates from Sorted Array II”题目的C语言解法。第一版代码因指针未初始化、误用比较符、循环变量异常修改等问题无法正确运行。第二版虽通过标记冗余元素并二次压缩实现功能，但存在整数溢出风险与逻辑冗余。推荐使用双指针法：write指向下一个写入位置，仅当write &lt; 2或当前元素不等于倒数第二个保留元素时写入，确保每个数字最多出现两次。该方法时间复杂度O(n)，空间复杂度O(1)，逻辑清晰，原地修改，符合题目要求。]]></description><category></category></item><item><title><![CDATA[Maximum Subarray Sum：C 语言代码分析]]></title><link>https://blog.youkuaiyun.com/HECHENNIU/article/details/168026388</link><guid>https://blog.youkuaiyun.com/HECHENNIU/article/details/168026388</guid><author>HECHENNIU</author><pubDate>Thu, 15 Oct 2026 17:00:21 +0800</pubDate><description><![CDATA[本文分析了三版求最大子数组和的C代码，指出其存在提前返回、未初始化变量、前缀和位置选择错误等严重问题。初版与改进版因return 0;导致逻辑失效，最终版虽修复部分边界但算法本质错误：误用全局极值前缀和，忽略顺序约束。正确解法应为Kadane算法或维护“此前最小前缀和”的前缀和思想。推荐实现以current = max(0, current + array[i])为核心，时间复杂度O(n)，空间O(1)，并强调变量初始化、类型安全与边界处理的重要性。]]></description><category></category></item><item><title><![CDATA[Codewars: Pine‘s Deaf Grandma（C）代码审查与解题分析]]></title><link>https://blog.youkuaiyun.com/HECHENNIU/article/details/168023447</link><guid>https://blog.youkuaiyun.com/HECHENNIU/article/details/168023447</guid><author>HECHENNIU</author><pubDate>Thu, 15 Oct 2026 15:19:19 +0800</pubDate><description><![CDATA[难度：Codewars 6 kyu语言：C代码来源：用户于 2026-10-15 在本对话中粘贴的三版实现分析日期：2026-10-15。]]></description><category></category></item><item><title><![CDATA[Deaf Grandma：C 语言三版代码分析]]></title><link>https://blog.youkuaiyun.com/HECHENNIU/article/details/168021035</link><guid>https://blog.youkuaiyun.com/HECHENNIU/article/details/168021035</guid><author>HECHENNIU</author><pubDate>Thu, 15 Oct 2026 15:18:52 +0800</pubDate><description><![CDATA[分析日期：2026-10-15。分析对象：用户提供的三个版本。。]]></description><category></category></item><item><title><![CDATA[LeetCode 27. 移除元素（C）解题分析]]></title><link>https://blog.youkuaiyun.com/HECHENNIU/article/details/167922336</link><guid>https://blog.youkuaiyun.com/HECHENNIU/article/details/167922336</guid><author>HECHENNIU</author><pubDate>Thu, 15 Oct 2026 00:09:47 +0800</pubDate><description><![CDATA[你的代码逻辑正确，能保留非val元素并保持顺序，但使用了int n[numsSize]导致额外空间为O(numsSize)，违反题目O(1)空间要求。推荐改用双指针覆盖法：用p作为写指针，直接在原数组上重写保留元素，时间复杂度O(n)，空间复杂度O(1)，且代码简洁可读。]]></description><category></category></item><item><title><![CDATA[Codewars: A Brave New Wordle（C）解题分析]]></title><link>https://blog.youkuaiyun.com/HECHENNIU/article/details/167920420</link><guid>https://blog.youkuaiyun.com/HECHENNIU/article/details/167920420</guid><author>HECHENNIU</author><pubDate>Wed, 14 Oct 2026 20:43:48 +0800</pubDate><description><![CDATA[题目要求实现一个Wordle提示生成函数，核心难点在于处理重复字母的配额：绿色匹配优先，黄色匹配需从左到右且不超过答案中该字母出现次数。正确解法采用两阶段“消耗库存”策略：先标记绿色并标记已用位置，再逐个扫描非绿色猜测，从左到右匹配未使用答案字符。原代码存在未初始化读取风险，应先将hints初始化为'b'，并使用独立的used数组标记消耗状态，避免依赖特殊字符如'1'。推荐使用bool used[5]的版本，语义清晰、安全可靠，符合C语言规范，且在固定长度5下性能足够。]]></description><category></category></item><item><title><![CDATA[LeetCode 88. 合并两个有序数组 C 解题分析]]></title><link>https://blog.youkuaiyun.com/HECHENNIU/article/details/167814645</link><guid>https://blog.youkuaiyun.com/HECHENNIU/article/details/167814645</guid><author>HECHENNIU</author><pubDate>Wed, 14 Oct 2026 00:51:05 +0800</pubDate><description><![CDATA[LeetCode88题要求原地合并两个有序数组。方法一错误地将0视为空位，导致逻辑错误且复杂度高达O((m+n)n)；方法二采用逆向归并，从后向前比较并写入最大值，正确性与效率均优，时间复杂度O(m+n)，空间复杂度O(1)。推荐使用简化三指针版本：从末尾开始，比较两数组尾部元素，将较大者填入nums1末尾，直至nums2全部合并。该方法避免覆盖未处理元素，且代码简洁高效。]]></description><category></category></item><item><title><![CDATA[Codewars Sum of a Sequence Hard Core Version C 解题分析]]></title><link>https://blog.youkuaiyun.com/HECHENNIU/article/details/167812802</link><guid>https://blog.youkuaiyun.com/HECHENNIU/article/details/167812802</guid><author>HECHENNIU</author><pubDate>Tue, 13 Oct 2026 21:02:55 +0800</pubDate><description><![CDATA[本题为等差数列闭式求和，核心在于避免循环。通过判断方向与边界，使用公式 $ S = n \times (a_0 + a_{n-1}) / 2 $，实现 $ O(1) $ 时间、$ O(1) $ 空间。难点在于整数溢出防护：需用 __int128 扩展中间计算，按奇偶性优先除法以避免溢出。递归与循环解法均因复杂度或溢出不可行。推荐闭式公式，结合宽类型与边界处理，确保大序列下正确高效。]]></description><category></category></item><item><title><![CDATA[无偿分享ChatGPT Image 2画图网页与并发绘图python程序【Ai绘图】]]></title><link>https://blog.youkuaiyun.com/HECHENNIU/article/details/161989673</link><guid>https://blog.youkuaiyun.com/HECHENNIU/article/details/161989673</guid><author>HECHENNIU</author><pubDate>Mon, 15 Jun 2026 03:09:27 +0800</pubDate><description><![CDATA[无偿分享ChatGPT Image 2画图网页与并发绘图python程序【Ai绘图】]]></description><category></category></item><item><title><![CDATA[Longest vowel chain_C++]]></title><link>https://blog.youkuaiyun.com/HECHENNIU/article/details/144324169</link><guid>https://blog.youkuaiyun.com/HECHENNIU/article/details/144324169</guid><author>HECHENNIU</author><pubDate>Sun, 08 Dec 2024 13:14:46 +0800</pubDate><description><![CDATA[可以避免复制字符，提高性能，尤其是在处理大型数据结构时。是一个对字符的常量引用。3.C++中std::string::npos。来访问字符串中的字符，但不能通过。‌在C++中用于获取字符串的长度，方法返回一个无符号整数。2.switch判断。]]></description><category></category></item><item><title><![CDATA[Retrieve The N-th String Term——C语言提高题]]></title><link>https://blog.youkuaiyun.com/HECHENNIU/article/details/141927938</link><guid>https://blog.youkuaiyun.com/HECHENNIU/article/details/141927938</guid><author>HECHENNIU</author><pubDate>Thu, 05 Sep 2024 15:15:56 +0800</pubDate><description><![CDATA[‘\0’会带来困扰，也会有便利。]]></description><category></category></item></channel></rss>