自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 LeetCode27. 移除元素

本文介绍了两种移除数组中指定元素的方法。第一种暴力解法先统计非目标元素数量,再通过双重循环移动元素,时间复杂度较高。第二种双指针解法通过快慢指针遍历数组,将非目标元素前移,效率更高。两种方法都能正确返回移除后数组的新长度,但双指针解法更为简洁高效。

2025-12-15 09:09:39 212

原创 LeetCode35. 搜索插入位置

这段代码实现了一个二分查找算法,用于在有序数组中查找目标值或确定其插入位置。算法通过维护左右指针逐步缩小搜索范围,处理了目标值在数组边界、中间位置以及不存在的情况。当目标值小于所有元素时返回0,大于时返回合适位置,找到相等值时直接返回索引。代码逻辑清晰,但边界条件处理可能存在优化空间。

2025-12-09 13:45:56 197

原创 LeetCode704. 二分查找

这段代码实现了一个二分查找算法,用于在有序数组中查找目标值。通过维护左右指针逐步缩小搜索范围,最终返回目标值的索引或-1(未找到)。时间复杂度为O(log n),空间复杂度为O(1)。提交记录显示该实现已通过测试,能够正确处理边界情况和空数组输入。

2025-12-07 20:10:13 162

原创 LeetCode242. 有效的字母异位词

摘要:该代码实现了一个判断两个字符串是否为字母异位词的方法。通过将字符串转换为列表,逐个检查目标字符串字符是否存在于基础字符串中并移除匹配项。若全部匹配且最终基础列表为空,则返回true,否则返回false。该方法通过字符匹配和移除操作验证字符串的字母组成是否相同。

2025-12-07 20:06:42 129

原创 LeetCode141.环形链表

摘要:本文提供了两种检测链表环的解法。解法一使用HashSet查重,通过遍历链表并将节点存入集合,若遇到重复节点则判定存在环。解法二采用快慢指针,快指针每次移动两步,慢指针每次移动一步,若两者相遇则说明存在环。两种方法均能有效检测链表环,其中HashSet解法空间复杂度较高,而快慢指针解法空间复杂度更低。两种解法均给出了完整代码实现。

2025-11-24 12:26:11 195

原创 LeetCode61.旋转链表

这段代码实现了链表右旋转功能。通过遍历链表将所有节点存入列表,计算实际旋转次数k后,将链表首尾相连形成环,然后找到新的头节点和尾节点断开环,最终返回旋转后的链表。处理了空链表和旋转次数为0的特殊情况,时间复杂度O(n),空间复杂度O(n)。

2025-11-24 00:01:11 150

原创 LeetCode151.反转字符串中的单词

本文提供了两种反转字符串中单词顺序的解法。解法一使用库函数,通过Split分割字符串后倒序拼接;解法二不使用库函数,采用栈结构处理单词顺序反转。两种方法都考虑了空格处理问题,解法一通过移除空元素,解法二通过标记位控制入栈时机。两种方案均能正确实现单词顺序反转功能,但解法二更注重底层实现,避免了直接使用字符串分割函数。

2025-11-23 01:48:07 314

原创 LeetCode290.单词规律

该代码实现了一个字符串模式匹配算法,判断给定的字符串s是否遵循pattern的模式。算法首先将字符串s分割成单词列表,然后使用字典建立字符到单词的映射关系。通过遍历pattern和单词列表,检查是否存在双向一致的映射关系。若长度不匹配或映射关系不一致则返回false,否则返回true。该算法确保了字符和单词之间的一一对应关系。

2025-11-23 00:11:20 157

原创 2025传智杯程序设计赛道初赛第一场 · 完成记录

本文分析了四个编程题目的实现与测试结果:1)药品功效计算(运行超时),2)蛇吃果实长度计算(通过),3)资源锁定状态统计(运行超时),4)二进制字符串转换(通过)。其中第二题和第四题成功通过测试,而第一题和第三题由于算法效率问题导致运行超时。建议对超时题目进行算法优化,如使用更高效的数据结构或减少循环嵌套。所有题目自测均通过,说明基础逻辑正确但需改进性能。

2025-11-22 18:41:19 691

原创 LeetCode70.爬楼梯

这段C#代码实现了一个动态规划算法来计算爬楼梯问题的解。方法ClimbStairs接收楼梯阶数n作为参数,使用列表dp存储中间结果,初始化前三个值(1,1,2)。通过循环从第3阶开始计算每阶的可能方式(等于前两阶方式之和),最终返回第n阶的结果。该算法以O(n)时间复杂度和O(n)空间复杂度高效解决问题。

2025-11-22 00:00:14 151

原创 LeetCode392.判断子序列

这段C#代码实现了一个判断子序列的函数IsSubsequence。它通过双指针法遍历字符串s和t,当s为空时直接返回true。主要逻辑是比较两个字符串的字符,当匹配时移动s的指针,若s指针遍历完则返回true,否则返回false。该算法时间复杂度为O(n),空间复杂度为O(1)。

2025-11-21 19:45:22 124

原创 LeetCode155.最小栈

本文实现了一个最小栈(MinStack)数据结构,使用两个栈分别存储元素和最小值序列。主栈保存所有元素,辅助栈记录每个操作后的最小值状态:压栈时若新元素小于当前最小值则更新,否则复制原最小值;弹栈时同步移除两个栈顶元素。该设计保证能在O(1)时间内获取当前栈中的最小值,空间复杂度为O(n)。核心思路是通过辅助栈维护最小值变化历史,实现高效的最小值查询功能。

2025-11-21 14:12:19 196

原创 LeetCode189.轮转数组

摘要:文章展示了两种数组旋转解法。解法一使用队列实现:先将数组逆序存入队列,然后进行k次队首出队再入队操作,最后将队列元素倒序放回数组。该方法通过队列的FIFO特性实现旋转,但可能存在效率问题。解法二未给出具体实现,暗示可能有更优解。两种方法对比展现了不同思路解决数组旋转问题。

2025-11-20 20:53:09 210

原创 LeetCode88.合并两个有序数组

该方法通过双指针合并两个有序数组。使用两个指针分别遍历nums1和nums2的有效元素,比较当前元素大小,将较小值存入临时列表。遍历完成后,将列表元素依次复制回nums1。时间复杂度O(m+n),空间复杂度O(m+n)。该方法思路清晰,但使用了额外空间存储中间结果。

2025-11-19 22:50:55 115

原创 LeetCode347.前K个高频元素

本文提出一种基于字典统计的Top K频繁元素算法。首先创建字典记录每个元素出现次数,然后通过k次遍历,每次找出当前出现次数最多的元素,将其加入结果数组并从字典移除。该方法时间复杂度为O(nk),空间复杂度为O(n),适用于较小k值场景。虽然实现简单直观,但当k较大时效率可能不足,后续可考虑优化使用堆结构来提高性能。

2025-11-16 01:08:45 220

原创 LeetCode20.有效的括号

摘要:本文实现了一个检查字符串中括号匹配有效性的算法。使用栈数据结构存储左括号,遇到右括号时弹出栈顶元素并进行匹配检查。若栈为空且所有括号正确匹配则返回true,否则返回false。时间复杂度O(n),空间复杂度O(n)。

2025-11-16 00:03:31 137

原创 LeetCode75.颜色分类

该摘要描述了一个解决颜色分类问题的算法。采用计数排序思想,先统计红(0)、白(1)、蓝(2)三种颜色的出现次数,然后通过两趟遍历数组:第一趟统计各颜色数量,第二趟按顺序填充颜色值。算法时间复杂度为O(n),空间复杂度O(1)。提交记录显示该方法已通过测试。

2025-11-15 23:07:28 196

原创 LeetCode19.删除链表的倒数第N个节点

该代码实现了一个从链表末尾删除第N个节点的算法。使用栈结构存储链表节点,遍历链表后将所有节点压栈。然后依次弹出栈顶元素,当遇到第N个节点时记录其前驱节点。最后根据前驱节点情况调整链表指针完成删除操作。若删除的是头节点则直接返回第二个节点,时间复杂度为O(n),空间复杂度为O(n)。算法通过栈的先进后出特性实现了从末尾计数的效果。

2025-11-13 19:27:39 162

原创 LeetCode283.移动零

文章摘要:作者分享了一个暴力解法实现移动零问题的代码,通过双重循环遍历数组,遇到零时与后续非零元素交换。虽然该方法能解决问题,但作者自嘲效率低下(时间复杂度O(n²)),展示了初学者的典型解决思路。代码使用C#实现,核心逻辑是外层循环定位零元素,内层循环寻找可交换的非零元素。该解法体现了新手面对简单问题时可能采取的直接但不够优化的策略。

2025-11-10 18:16:15 134

原创 LeetCode21.合并两个有序链表

摘要:该算法通过同时遍历两个有序链表(list1和list2),比较节点值并将较小值依次复制到新链表(answer)中。使用指针ptr跟踪新链表当前位置。当任一链表未遍历完时循环:若两链表都有节点,比较取较小值;若仅剩一个链表,直接复制剩余节点。每次循环后更新相应链表指针,必要时为ptr新建节点空间。最终返回合并后的有序链表。时间复杂度O(m+n),空间复杂度O(m+n)。

2025-11-10 16:02:37 162

原创 LeetCode8.字符串转换整数

该算法实现字符串转整数的功能。主要流程:1)初始化状态变量;2)遍历字符串:处理前导空格,识别正负号,收集有效数字;3)处理结果:若无有效数字返回0,能正常转换则返回结果,溢出时返回int极值。通过状态机(isReading)区分不同处理阶段,使用StringBuilder收集数字字符,最后尝试解析并处理边界情况。时间复杂度O(n),空间复杂度O(n)。

2025-11-09 21:24:12 139

原创 LeetCode2169.得到0的操作数

【代码】LeetCode2169.得到0的操作数。

2025-11-09 01:43:23 121

原创 LeetCode66.加一(个人解法)

倒序遍历数组的每个元素,如果其元素+1小于等于9则直接对元素+1,后续就不需+1并且可以终止循环,否则将元素置为0并继续循环。循环结束后如果仍需+1则进行额外处理:这里需要向数组最前位加入1,使用数组转List>List插入值>List转数组即可解决。

2025-11-07 23:14:25 218

原创 LeetCode2.两数相加(个人解法)

/初始化CalcuInfo的长度,长度需要以更长队列的长度+1(因为如果最末尾需要进位,则需要多存储一次进位信息)= queue2.Count) shorter.Enqueue(0);将两份数据存储进队列 > 同时取出两队列的数据,每次判断是否需要进位并将数据相加 > 将得出结果依次插入文本的最前部 > 倒序遍历结果文本,返回结果。= queue2.Count)//如果两个队列的长度不同,//结果节点(结果链表的头节点)if (i == CalcuInfo.Count - 1)//边界处理。

2025-11-07 17:16:21 656

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除