C语言数据结构与算法OJ刷题
文章平均质量分 79
C语言的刷题记录
不吃肉的Humble
编程努力学习中
展开
-
力扣OJ题——随机链表的复制
好啦,到此为止,今天的随机链表的复制问题就结束啦,如果文中分析,题解代码有不足的地方欢迎大家在评论区讨论和指正。指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。节点组成,其中每个新节点的值都设为其对应的原节点的值。的链表,每个节点包含一个额外增加的随机指针。虽然时间复杂度为O(N^2),但力扣居然给过了。,该指针可以指向链表中的任何节点或空节点。让我们在接下来的时间里一起学习,一起进步吧~要求:构造这个链表的。原创 2024-02-21 16:16:11 · 460 阅读 · 0 评论 -
力扣OJ题——环形链表
看到这几个问题,想必小伙伴们也已经意识到:这道题的难点不在于编程,而是数学的逻辑上。到此为止,好像一切都没问题,事实上,博主看过其他的一些博客讲到这里也就结束了,所以说,正如前面所说,这里考察的更多的是一种逻辑,编程写代码反而是最简单的。理由很简单:因为如果slow走了一圈,那fast都走了两圈了,早就追上了。下面是fast与slow的距离变化,当距离为0时,也就意味着追上了。我们用这个slow走一步,fast走两步的快慢指针解决了这个问题,当N是偶数时,最后距离为0,表示fast==slow。原创 2024-02-20 11:14:52 · 1143 阅读 · 0 评论 -
力扣OJ题——相交链表
请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回。当然,我们也可以将这个代码写得更简略一些:比如将计算长度的代码融入第一步的遍历。这里因为要逻辑更清晰一些才将它们分开的,不过这些也都是小问题而已啦。将上面两步的代码结合起来,这道题就过了。所以接下来我们来实现一下思路二~给你两个单链表的头节点。原创 2024-02-19 15:39:13 · 501 阅读 · 0 评论 -
力扣OJ题——旋转数组
这里我先单独写一个逆置函数,因为这个功能我们等会要用三次, 单独写一个才更加方便之后的复用~不过这个思路博主已经在力扣上跑过了,最终超出时间限制,所以对于这道题目,时间复杂度为。从函数的定义中,我们可以看出第一个参数是目标,第二个是原,第三个参数是字节数。同样,我们也来分析一下它的时间复杂度,看看它的性能是否值得我们去写。是不行的,我们得用其他的,时间复杂度更低的思路实现~我们知道每次挪动旋转1位的时间复杂度是O(N)先拷后k个,再拷前n-k个用了n再整体拷回,好,这是这个题的第二个思路。原创 2024-02-17 14:50:25 · 537 阅读 · 0 评论