- 博客(10)
- 收藏
- 关注
原创 leetcode 2.两数相加
加和的过程中,需要对两个链表相对应的位置上的节点数值进行加和的运算,当然肯定要遵循加法守则,所以在遵守这个原则的情况下我们用一个“ten” 的变量来存储十位的数字,并让他加到下一次的加和运算中。然后我们定义一个新的链表节点,这个就是我们最后输出的链表了。运算完成后将的到的取余数值保存到dummy的next作为头指针的链表的末尾,并让这个尾指针再指向下一个新的节点。然后再让l1 , 和l2 这两个链表进行遍历,继续上述的操作,就能得到最终我们要求的得数了,最后返回这个得数链表的头指针,也就是“dummy。
2025-10-12 17:19:06
167
原创 leetcode 203 链表的删除
第一种是定义了一个dummy,也就是“哨兵节点” 的局部变量,这个节点的作用就是在头节点之前定义一个节点,然后头节点成为dummy为头节点的链表中的中间节点,方便后面的删除操作。然后定义的工作指针指向dummy的地址,这样就可以让包括头节点的所有节点都可以进行同样的删除操作,这里的删除操作不过多赘述。这种“哨兵节点” 是首要推荐。第二种没用“哨兵节点” 来进行删除操作,只用工作指针来进行删除操作,这样就比较第一种多了一步判断条件,但是相对第一种要更容易看懂,也是十分简单的算法。第一种:“哨兵节点”
2025-10-12 15:35:53
124
原创 leetcode 算法 392 判断子序列
这里给的代码是以 s 字符串的顺序为主(主要还是这样最简单),从前向后遍历 s 和 t 字符串同步进行,当 s 中的字母在 t 中出现时,指向 s 的索引才会向后移动,而指向 t 的索引是一直向后移动的。当这两个字符串的任意一个索引指向最后的时候就是遍历完成。这里平台上已经给了函数的类型BOOL型,所以只要看 s 的索引值与其长度是否相等就能输出结果了,这里给的 bool 型函数头说实话已经给了一点提示了,奈何我没看见,而且对于代码的优化和算法能力实在欠佳,所以还是老老实实从简入繁吧。
2025-09-28 21:37:10
165
原创 leetcode 算法 409 最长回文数
所以在返回最终的结果时,进行一个比较的操作,当count数值 不等于 原长时,证明该数组中有奇数次的字符出现,那么令上述的不等式结果为 1 ,就可以保证最终保留了一个奇数次的字符,就是最终的字符串长度了。但是奇数次的字符就要进行额外的处理,因为当奇数次的字符出现时,我们必须要保证整个字符串中只有一个字符出现的次数为奇数次。所以在上述的代码中,我们在遍历vb数组时,计算count的数值要对该字符个数进行取余再减去余数的操作,这样对于偶数来说相当于没有处理,但是对于奇数来说就是进行了减一的操作。
2025-09-27 22:26:46
152
原创 leetcode 1.两数相加
注意,这里需要把“ * returnSize ” 这个指针变量赋值为2,因为这样赋值后就代表了这个题目是有解的,解的数量为2,也是因为只有两个数;最后在这个函数的结尾将“ * returnSize” 这个指针变量赋值为0 ,这一步在这种写法下十分重要,是可以代替free函数的一步,将这个数组的大小清零;最后返回的是“ NULL ” 这个空指针的值,这也是代替free的一步,这是将这个数组赋值为空值。主要的算法就是嵌套的两层循环,在两个数组中经过遍历找到这里两个元素的索引,分别为i, j。
2025-09-14 15:26:19
210
原创 洛谷基础数学算法-P1143-进制转换
4.编写主函数,这里注意,因为输入的数字会很大,所以只用普通的gets函数读取的话可能会报错,所以可以使用fgets函数进行读取。解题思路:将题目所给的数字转化为十进制的数字,然后把该数字转化为所需进制的数字。
2025-04-11 20:52:13
196
原创 洛谷差分数组-P2367-语文成绩
可能还是不太明了,简单来说就是一个数组的元素不变,那么它们相邻两个元素之间的差值也不变,就可以通过改变某一区间的差值来实现改变某一区间的元素数值。思路:题目要求我们求在x到y的区间和并输出最小值,那么将其拆分为两个部分,第一部分求区间和,用到差分数组。那么什么是差分数组呢?差分数组是一种可以高效处理某一区间的算法,是通过维护相邻单元的差值来优化区间操作。
2025-04-10 21:11:02
400
原创 洛谷前缀和算法-P8218-求区间和
思路:根据题意要求在 li 到 ri 的加和,使用前缀和的算法,定义一个sum数组,在这个sum数组的相应位置储存对应输入数组该位置之前所有数字的总和,即。,如果只是 ri - li 的话只是 ri - li 个数的和,所得结果是不正确的。”而不是 li 本身,因为所求的是 li 到 ri 的总和,也就是。题中说要输出的是在 li 到 ri 位置的总和,那么就可以让。以上是所有关于前缀和的题解。
2025-04-10 11:49:41
353
原创 洛谷排序算法P1093-奖学金
然后利用选择排序根据题目要求将学生的总分进行排名,如果总分相等用语文分数排名,如果前两者都相等,让学号小的同学在前。思路:根据题意要求,可以用结构体数组进行编程,首先定义一个结构体student。
2025-04-09 22:13:40
140
原创 洛谷排序算法P1104-生日
是将每一个在外层循环的数据与其后的所有数据进行比较并交换,所以是符合题目的叙述的。思路就是构建一个结构体,通过结构体将每一个角色的生日输入并进行大小的比较。,也就是说两个数据并没有交换位置,从而不符合题目中后输入的人先输出的规则。因为冒泡排序是用两个循环将相邻的两个数据进行比较,这会导致两个相同的数据。因为没学过c++,所以只能写出c的代码。但是要注意在进行大小的排序的时候,以上是全部对该题进行的C语言题解。所以这里使用的是选择排序。进行了两次的比较并交换。
2025-04-09 21:32:19
325
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅