- 博客(44)
- 收藏
- 关注
原创 LeetCode 274 H 指数 C 语言解题分析
本文分析LeetCode 274.H指数题中插入排序实现的缺陷,指出初版遗漏写回逻辑、改进版存在越界访问与返回值错误。核心结论:排序方向必须与判定条件一致(降序排列后用citations[i] >= i+1),否则无法正确求解。推荐使用降序插入排序或qsort配合正确判定逻辑,确保返回最大满足条件的论文数量h,而非引用次数或中位数。强调算法需区分“引用次数”与“论文数量”,避免语义混淆。
2026-10-24 17:55:27
196
原创 LeetCode 45 跳跃游戏 II C 语言解题分析
具体过程:i = 0 时,j = 0 得到 nums[0] - 0 = 2,best 变成 2,f 变成 0;当 i 走到 end,说明当前层已经扫描完,必须再跳一次,于是 s 加一,并把 end 推进到 best。整理版保留参考代码的算法,只做了两点改善:变量名直接表达含义,并删除了外层多余的 i 声明,避免内层 for 的 i 遮蔽外层变量。即使把比较式改成 j + nums[j],也不能只靠这一个改动解决问题:best 仍然需要按当前跳跃层重置,循环仍需要限制到数组末尾以内,并且要在到达终点时停止。
2026-10-24 17:02:08
215
原创 LeetCode 55 跳跃游戏 C 语言解题分析
本文分析跳跃游戏(LeetCode 55)的三种实现:初版逐零回溯、改进版优化但仍有缺陷,最终推荐贪心法。核心思想是维护当前最远可达下标 farthest,遍历中若 i > farthest 则不可达,否则更新 farthest = max(farthest, i + nums[i])。该方法时间复杂度 O(n),空间 O(1),正确处理边界如单元素、零值、恰好跳跃等,避免了回溯带来的 O(n²) 复杂度与逻辑错误。建议直接采用贪心实现以确保稳定性与效率。
2026-10-24 15:25:49
165
原创 Codewars:Rot13(C)解题分析
本文分析了C语言实现ROT13函数的完整过程,指出初版仅计算长度、第二版存在边界判断错误与非字母截断问题,最终版修正了关键缺陷:重置索引、正确处理大小写边界、保留非字母字符并显式添加终止符。推荐使用size_t、模运算和分配失败检查,提升代码安全性与可读性。最终版本在常规测试下通过,时间复杂度为O(n),空间复杂度为O(n),符合题目要求。
2026-10-18 22:07:44
204
原创 LeetCode 122:买卖股票的最佳时机 II(C)解题分析
题目122要求在无限次交易条件下最大化股票利润。用户代码误将问题理解为“最多两次交易”,通过分割数组枚举两段最大利润,但无法处理三次及以上交易,且存在“将价格当利润”等错误。正确解法应采用贪心策略:累加所有相邻正差值,即每天若价格上涨则买入卖出,等价于持有至波峰。该方法时间复杂度O(n),空间O(1),可覆盖任意多次交易,且逻辑简洁正确。
2026-10-18 18:23:56
91
原创 Codewars:Last digit of a large number(C)解题分析
本题要求计算大数幂 $ a^b $ 的个位数字,核心思路是:个位仅由 $ a $ 的个位决定,指数 $ b $ 仅需取模 4。通过扫描字符串边读边对 4 取模,避免处理超长整数。特殊处理 $ 0^0 = 1 $ 和底数为 0 的情况。使用二维查表法预存各数字循环规律,实现 $ O(|a| + |b|) $ 时间复杂度与 $ O(1) $ 空间复杂度,高效且正确。
2026-10-18 17:34:28
255
原创 LeetCode 121 买卖股票的最佳时机
本文分析了股票买卖问题的两版错误C代码及改进过程,指出第一版因错误预判单调递增数组导致返回0,且暴力枚举存在边界遗漏与超时问题。第二版虽修正部分逻辑,仍无法避免O(n²)复杂度。最终给出正确解法:一次遍历维护历史最低价与最大利润,时间复杂度O(n),空间O(1),满足大数据要求。强调易错点:漏第一天买入、未及时更新最低价、盲目使用暴力算法。
2026-10-16 13:48:43
139
原创 LeetCode 189 轮转数组 代码迭代分析文档(Markdown)
本文分析了轮转数组问题的三版手写C代码,指出迭代中常见的错误:变长数组赋值非法、下标公式偏移(多+1)、未取模导致越界及遗漏回写。最终优化为正确辅助数组解法,通过k %= numsSize和(i+k)%numsSize统一公式,实现逻辑清晰的O(n)时间、O(n)空间解法。进一步提出进阶的三次反转法,通过反转整个数组、前k个元素、后n-k个元素,实现原地O(1)空间复杂度,满足面试要求。对比表明,辅助数组法易懂但占内存,反转法高效且原地,推荐掌握。
2026-10-16 12:21:07
197
原创 常用排序算法选型与应用讲解
本文系统梳理七种常用排序算法:插入、快速、归并、堆、计数、桶、基数排序,从时间空间复杂度、稳定性、适用场景等方面进行对比分析。强调根据数据规模、分布特征、内存限制与稳定性需求综合选型:小规模用插入排序,通用场景选快速排序,需稳定选归并,内存受限选堆排序,整数范围小可用计数、桶或基数排序。建议工程中优先使用语言内置排序,手写仅用于学习与特殊场景。
2026-10-16 11:43:36
287
原创 80. 删除有序数组中的重复项 II
本文分析了LeetCode“Remove Duplicates from Sorted Array II”题目的C语言解法。第一版代码因指针未初始化、误用比较符、循环变量异常修改等问题无法正确运行。第二版虽通过标记冗余元素并二次压缩实现功能,但存在整数溢出风险与逻辑冗余。推荐使用双指针法:write指向下一个写入位置,仅当write < 2或当前元素不等于倒数第二个保留元素时写入,确保每个数字最多出现两次。该方法时间复杂度O(n),空间复杂度O(1),逻辑清晰,原地修改,符合题目要求。
2026-10-15 21:17:04
67
原创 Maximum Subarray Sum:C 语言代码分析
本文分析了三版求最大子数组和的C代码,指出其存在提前返回、未初始化变量、前缀和位置选择错误等严重问题。初版与改进版因return 0;导致逻辑失效,最终版虽修复部分边界但算法本质错误:误用全局极值前缀和,忽略顺序约束。正确解法应为Kadane算法或维护“此前最小前缀和”的前缀和思想。推荐实现以current = max(0, current + array[i])为核心,时间复杂度O(n),空间O(1),并强调变量初始化、类型安全与边界处理的重要性。
2026-10-15 17:00:21
157
原创 Codewars: Pine‘s Deaf Grandma(C)代码审查与解题分析
难度:Codewars 6 kyu语言:C代码来源:用户于 2026-10-15 在本对话中粘贴的三版实现分析日期:2026-10-15。
2026-10-15 15:19:19
155
原创 LeetCode 27. 移除元素(C)解题分析
你的代码逻辑正确,能保留非val元素并保持顺序,但使用了int n[numsSize]导致额外空间为O(numsSize),违反题目O(1)空间要求。推荐改用双指针覆盖法:用p作为写指针,直接在原数组上重写保留元素,时间复杂度O(n),空间复杂度O(1),且代码简洁可读。
2026-10-15 00:09:47
249
原创 Codewars: A Brave New Wordle(C)解题分析
题目要求实现一个Wordle提示生成函数,核心难点在于处理重复字母的配额:绿色匹配优先,黄色匹配需从左到右且不超过答案中该字母出现次数。正确解法采用两阶段“消耗库存”策略:先标记绿色并标记已用位置,再逐个扫描非绿色猜测,从左到右匹配未使用答案字符。原代码存在未初始化读取风险,应先将hints初始化为'b',并使用独立的used数组标记消耗状态,避免依赖特殊字符如'1'。推荐使用bool used[5]的版本,语义清晰、安全可靠,符合C语言规范,且在固定长度5下性能足够。
2026-10-14 20:43:48
409
原创 LeetCode 88. 合并两个有序数组 C 解题分析
LeetCode88题要求原地合并两个有序数组。方法一错误地将0视为空位,导致逻辑错误且复杂度高达O((m+n)n);方法二采用逆向归并,从后向前比较并写入最大值,正确性与效率均优,时间复杂度O(m+n),空间复杂度O(1)。推荐使用简化三指针版本:从末尾开始,比较两数组尾部元素,将较大者填入nums1末尾,直至nums2全部合并。该方法避免覆盖未处理元素,且代码简洁高效。
2026-10-14 00:51:05
298
原创 Codewars Sum of a Sequence Hard Core Version C 解题分析
本题为等差数列闭式求和,核心在于避免循环。通过判断方向与边界,使用公式 $ S = n \times (a_0 + a_{n-1}) / 2 $,实现 $ O(1) $ 时间、$ O(1) $ 空间。难点在于整数溢出防护:需用 __int128 扩展中间计算,按奇偶性优先除法以避免溢出。递归与循环解法均因复杂度或溢出不可行。推荐闭式公式,结合宽类型与边界处理,确保大序列下正确高效。
2026-10-13 21:02:55
241
原创 无偿分享ChatGPT Image 2画图网页与并发绘图python程序【Ai绘图】
无偿分享ChatGPT Image 2画图网页与并发绘图python程序【Ai绘图】
2026-06-15 03:09:27
211
原创 Longest vowel chain_C++
可以避免复制字符,提高性能,尤其是在处理大型数据结构时。是一个对字符的常量引用。3.C++中std::string::npos。来访问字符串中的字符,但不能通过。在C++中用于获取字符串的长度,方法返回一个无符号整数。2.switch判断。
2024-12-08 13:14:46
590
原创 Simple Fun #352: Reagent Formula——C语言提高题
简单的题也会让你有收获 Simple Fun #352: Reagent Formula
2024-09-04 23:56:51
591
原创 C练手题--Exclusive “or“ (xor) Logical Operator 【8 kyu】
Exclusive "or" (xor) Logical Operator 无难度
2024-09-01 21:50:02
650
原创 C练手题--Progressive Spiral Number Position 【7 kyu】
Progressive Spiral Number Position 难度低 略有意思
2024-08-31 22:57:05
618
原创 每题多学点——Simple Fun #6: Is Infinite Process?【C语言】
采用分类讨论处理问题,浅谈bool有关问题,题目源于codewars平台Simple Fun #6: Is Infinite Process?一题,采用C语言编写。若能帮到你,我将十分荣幸,祝你C运昌隆。
2024-06-22 21:53:31
969
原创 每题多学点——Short Long Short【C语言】
简单探讨C语言关于字符串的strlen、strcpy、strcat函数,以及const char *有关问题,题目源于codewars平台Short Long Short一题,采用C语言编写。该题涉及字符串拼接、长度比较。若能帮到你,我将十分荣幸,祝你C运昌隆。
2024-06-22 14:34:20
1120
原创 每题多学点——Odd or Even?【C语言】
简单探讨动态申请空间后存入值的问题,以及size_t 数据类型,题目源于codewars平台Odd or Even?一题,采用C语言编写。该题设计char型指针函数返回、函数传入整型数组首地址后对数组各元素的遍历、奇偶判断。若能帮到你,我将十分荣幸,祝你C运昌隆。
2024-06-22 12:39:52
935
原创 每题多学点——Which are in?【C语言】
总结在Which are in?一题中,学到的知识或遇到的问题。重点理解题意,从高位到低位求各位数值。
2024-06-21 23:38:41
876
原创 每题多学点——Descending Order【C语言】
关于uint64_t关键字、以及常见排序算法的高质量视频或文章,总结在Descending Order一题中,学到的知识或遇到的问题
2024-06-20 16:19:32
808
原创 每题多学点——Binary Addition【C语言】
用于记录了,在codewars平台刷C语言题目,一些思路、知识点,若能帮到你,我将不胜荣幸。--每题多学点【C寓言编程提高训练】
2024-06-20 09:30:00
710
原创 每题多学点——Reverse words【C语言】
1.循环需注意是否存在死循环,这很重要。2.进行复制字符串的操作时,通过“\0”进行封堵,有时很重要。3.处理问题换个思路,有时真的可以豁然开朗,大大降低问题难度。4.申请动态地址时,需要强制类型转换;并且,为避免使用时地址越界,可适当增加申请的地址大小。5.指针检测是否读到最后,印象中有*text!=NULL和*text!='\0',此处不太确定,留作探讨研究。
2024-06-17 00:12:34
775
原创 每题多学点——Count Digits 【Python】
(参考链接python中的isdigit()函数的用法_python中isdigit函数怎么用-优快云博客法3就用到此方法m='c'
2024-05-08 11:39:05
1179
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅