- 博客(51)
- 收藏
- 关注
原创 class与对象的关系
类实例化出对象就像现实中使用建筑设计图建造出房子,类就像是设计图,只设计出需要什么东西,但是并没有实体的建筑存在,同样类也只是一个设计,实例化出的对象才能实际存储数据,占用物理空间。有的人造的自定义类型,没有成员变量,只有函数,搞得就是一个函数袋子,(这个时候这个自定义类型所创建的对象还是占有一个字节的空间)有的人造的自定义类型,没有函数,只有成员变量,玩的跟struct一样,class创建出自定义类型,对象类似于(int a;经典的,房子图纸,和创建的房子之间的关系,
2024-05-08 19:45:14 189
原创 LeetCode:118.杨辉三角
杨辉三角核心的就那样做,无论是打印出来还是以数组的形式返回,都只是换汤不换药罢了,二维数组简单的应用,C语言实现:
2024-02-14 23:32:13 608
原创 LeetCode:67.二进制求和
又是一道求和,牢记核心要点求模,求余的使用,思路:对齐后逐个相加C语言实现,易错,字符串的结束标志很容易忘记!
2024-02-12 22:11:43 535
原创 LeetCode:13.罗马数字转整数
看似有点迷,实际上没啥套路,最最基础,根本没花样,我愿称之为目前见到的最简单的LeetCode题!C语言实现:
2024-02-05 22:51:05 538
原创 LeetCode:292.Nim 游戏
大一开学到现在,我不禁思考一个问题:代码重要吗?我的答案是,根本不重要,或者说,是次要的。我认为分析问题,和画图是写题的开始,方法的学习,和灵活运用是目的。代码从来都不重要。
2024-02-04 14:04:04 536
原创 牛客,OR36 链表的回文结构,快慢指针和反转链表的实践
还是比较简单的,主要分为三个步骤,两种需掌握的函数实现由于单链表没法让指针往回走,所以,我们要让它能往回走,以好比较,我们用到,查找链表中间结点的操作,和反转链表的操作,
2024-02-01 22:49:29 335
原创 LeetCode: 160.相交链表(令人赞叹的优雅)
博主还未学习哈希表,所以介绍的是双指针法,此题的时O(n+m)空O(m)而今天的这个时O(n+m)O(1) ,绝对值得你细细品味,(官方的解释)我在这里也不好说啥,双指针解法易想,但是这些细节真的很难抓住,让我们来欣赏吧(欣赏前建议自己写写)
2024-02-01 21:02:22 358
原创 LeetCode: 189.轮转数组
1,翻转做法,推荐时O(n),空(1)2,环状替换,极不推荐(思路好像,但官方的解释比较难理解,官方题解更像是在秀操作,)时O(n)空(1)环状替换的思路,主要思想是:一次性(一步到位,而且不会),排到,轮转k次的位置,3,创建临时数组,拷贝完后,再拷贝回去,时O(n),空O(n);显现不出自身水平,尤其在掌握了翻转做法,这就太过时了4,单个临时变量,来一遍一遍的循环重复,向右轮转的操作(如果K和数组本身较大,时间耗损的多),时O(n^2),空(1)太LOW了。
2024-01-31 20:44:34 570 1
原创 LeetCode: 203.移除链表元素,之好习惯帮你节省时间
C语言实现:又是一个遍历然后对链表操作的题,简简单单?主要思路差别不大,还是循环遍历,即迭代法(递归也行,比较浪费空间 )对于这种影响到头结点(第一个结点,这是无头单链表,不是带头的单链表),要注意对头结点(第一个结点)的操作和别的结点操作有所区别,放不进循环,这类题,就是要我们有效的处理“头结点”
2024-01-30 23:13:23 506 1
原创 LeetCode:21.合并两个有序链表之第一次的特殊情况
C语言实现:除了平平无奇外,就是关于对第一次(无头)特殊情况的处理,理解有无头的方便与否代码,详细注释
2024-01-29 22:19:10 577 1
原创 LeetCode:876.链表的中间结点
C语言链表做题经验,以下是关于做题的理解(虽然不知道具体实现过程,但是我们评价一个程序看,时间复杂度和空间复杂度) ,通过时间复杂度的计算方法,我们可以总结出一个循环里包含多个赋值不大重要(博主目前浅显理解),重要的是减少循环的次数。而为了能返回中间节点,就得有个走的比判断遍历结束的指针走的慢的指针来指向(记录)中间节点。手段是(我们用结点指针来遍历链表的嘛,)指针是否为NULL来判断是否遍历完,很容易get到我们的目标是遍历一遍 即时间复杂度O(n),本题情况简单,只有奇偶两种情况。
2024-01-29 21:08:35 538
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人