自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode算法题 (二分查找)Day13!!!C/C++

二分查找法是一种高效且重要的算法,在有序数组中查找目标值时具有显著优势。掌握二分查找法的核心思想、易错点及适用场景,能帮助我们在合适的情况下高效地解决问题,同时避免因细节问题导致的错误。在实际应用中,要根据具体的数据特点和操作需求,灵活选择和运用算法,以达到最佳的效果。!!荆轲刺秦!!!

2025-01-08 15:49:08 1798

原创 LeetCode算法题 (最后一块石头的重量)Day12!!!C/C++

希望通过今天的分享,大家对这道石头重量问题有了更深入的理解。从最初的暴力解法到利用哈希表优化,我们看到了不同思路和方法带来的巨大差异。在今后的学习和工作中,当面对类似问题时,希望大家能够灵活运用所学知识,不断探索更高效的解决方案。无论遇到什么困难,都不要放弃,相信自己一定能够找到最优解。荆轲刺秦!!!

2025-01-05 14:20:21 805

原创 LeetCode算法题 (二叉树的直径)Day11!!!C/C++

通过今天的题目,我们了解了二叉树这一数据结构,也通过了一个问题拆分成若干个子问题来帮助我们完成今天的这道题目。以上就是关于这个二叉树问题的全部分析了。如果后续你遇到类似的问题,或者对这一问题有了新的思考方向,都可以再次回顾我们的讨论内容。相信你在不断实践和思考中,能够轻松应对这类问题。荆轲刺秦!!!

2025-01-04 17:27:21 491

原创 LeetCode算法题 (最小栈)Day10!!!C/C++

本题旨在设计 MinStack,除常规入栈、出栈、查看栈顶元素操作外,重点要在常数时间检索最小元素。先回顾栈知识,依示例理解需求,暴力法遍历找最小元素虽可行却破坏栈结构且不满足时间要求,后用空间换时间策略,结构体新增指针记录最小元素,各操作函数按规则实现对应功能,最终达成设计要求,还让我们掌握算法优化与复杂度权衡。!!荆轲刺秦!!!

2025-01-01 15:10:15 967

原创 LeetCode算法题 (比较含退格的字符串)Day9!!!C/C++

本题通过含‘#’号退格字符进行比较,这一问题考验对字符操作和逻辑判断的掌握。双指针法无疑是本题解决问题的关键,希望大家熟练掌握。我们在遇见一个题目时,可以先在脑子里形成一段“伪代码”,之后按照这个思路,一步步的进行代码优化(时间复杂度或空间复杂度上)。在使用malloc时,务必要记得在使用完毕以后,手动释放掉开辟出的内存,避免造成内存泄露。通过这道含退格字符串比较题,深入探索了字符串处理细节与双指针算法精妙之处,从基础的字符判断、指针操作,到复杂的逻辑构建、性能优化,全方位提升编程思维。

2024-12-31 15:28:03 885

原创 LeetCode算法题 (链表的中间结点)Day8!!!C/C++

链表是数据结构中一种存储数据的方式,和数组一样都属于线性表,但链表与数组不同的地方在于数组的每个元素地址都是连续的,而链表的每个元素地址不一定连续,所以在单向链表中会包含一个指针域(存放下一个元素的地址)和一个数据域(当前元素)。注:这里的fast不建议一次直接走完两个节点,因为他如果长度为偶数时,如果这样做会导致fast指针走向最后一个指针的后面也就是空指针,一定要记得在fast走完一个节点后,再加一个if判断当前元素是否为链表的末尾,如果不是在继续走下一个节点。这样,快指针的移动速度是慢指针的两倍。

2024-12-30 16:43:10 1989

原创 LeetCode算法题 (字母异位词分组)Day7!!!C/C++

首先使用map来存储排序后的字符串和其对应的原始字母异位词列表。通过遍历输入的字符串数组,对每个字符串进行排序,然后将其原始形式添加到map中对应的位置。最后,遍历map,将每个键对应的值(即字母异位词组)添加到最终的结果向量ret中并返回。今天我们成功地使用哈希表(或排序 + 映射)解决了 “字母异位词分组” 这一 LeetCode 算法题,深入理解了哈希表在处理这类字符串分组问题中的强大作用,以及排序操作对于识别字母异位词的巧妙应用。

2024-12-29 17:06:01 595

原创 LeetCode算法题 (买卖股票的最佳时机 II)Day6!!!C/C++

函数maxProfit接受一个整数数组指针prices和数组的大小pricesSize作为参数。使用for循环遍历数组prices,每次比较相邻的两个元素prices[i]和。如果prices[i]小于,说明后一天价格上涨,计算并累加利润到变量profit中。最后返回累加后的总利润profit。在关于“买卖股票的最佳时机 II”算法问题我们深入探讨了通过贪心算法解决股票交易获取最大利润的问题。从算法的实现思路到代码的详细解读,希望能帮助大家清晰地理解其内在逻辑。

2024-12-28 16:50:44 1754

原创 LeetCode算法题 (Move Zores(移动零))Day5!!!C/C++

算法的世界广阔而深邃,让我们一起保持探索的热情,不断挖掘其中的奥秘,期待下一次与大家分享更多精彩的算法知识!题解一中的while(true),我在这里其实是非常不建议大家使用的,除非大家是物联网相关专业的同学(这里懂得都懂😁😁😁)。通过实例分析,我的初步想法是先判断数组前后的元素是否为0,如果第一个元素为0,后一个元素不为0,那么我们需要把这两个元素进行交换。通过示例,简单来说就是把为0的元素统统放到数组的右边,不为0的元素统统放到数组的左边。移动到数组的末尾,同时保持非零元素的相对顺序。

2024-12-27 16:43:52 549

原创 LeetCode算法题 (最大子数组和)Day4!!!C/C++

首先我们要确定一个区间,也就是我们要算出哪一部分的和,这里定义出两个变量,一个作为开始(begin),一个作为结束(end)。但是这样写并不能通过本题的所有测试,咱们可以看,这个算法的时间复杂度为 O(N^3),效率非常的低,那么我们需要对这个算法进行一定的优化。可以直接改为这样,去除了最内层的循环后,此时的时间复杂度为O(n^2)。根据示例和题目分析,这道题是让我们求出最大的连续子数组之和,而且最少包含元素,也就是说,假如给定一个数组。那基本框架已经写的差不多了,接下来就需要添加上具体要实现的功能了吧。

2024-12-26 17:02:07 504

原创 LeetCode算法题 (快乐数)Day3!!!C/C++

分别定义两个变量,一个fast,一个slow,fast一次走两个,slow一次走一个,当他们相遇的时候就代表元素出现了循环,我们就直接终止while循环,最后返回判断fast(或slow都可以)是否等于1即可。那么接下来就要分析我们需要把每次的平方和结果记录下来进行比对,看之前是否出现过相同的数字,且数字如果不为1的话,那么这个数就不是我们要找的快乐数,相反就是快乐数字了。n对10进行取余运算的话,就会得到末尾的3,那么我们只需要每一位先取余之后对n进行除以10的操作就可以截去掉最后一位,也就是。

2024-12-25 15:51:26 489

原创 LeetCode算法题 (只出现一次的数字)Day2!!!C/C++

但这样会有一个很严重的弊端,会大大增加时间复杂度 O(n^2)也就是说,如果我的数组元素个数为100的话那么需要遍历的次数就是10000次了,这还仅仅只是100个元素,但需要遍历的次数就已经达到了这个量级。还有一点很重要,就是异或运算其实和咱们的加法运算很相似,异或运算也是可以交换两个操作数的位置的,而且结果不变。,那么就是2^1^2^1^4,这里咱们可以给这些数字手动排序一下,就成了 1^1^2^2^4。,那么现在的式子就变成了,0^0^0^0^4,(第三点相同的元素进行异或就会得到0,)

2024-12-24 16:35:36 547

原创 LeetCode算法题 (移除元素)Day1!!!C/C++

LeetCode算法题 (移除元素)C语言小白

2024-10-17 17:10:56 450

空空如也

空空如也

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

TA关注的人

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