![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
题目分享
分享一些自己平常做过的题目
Peace & Love487
这个作者很懒,什么都没留下…
展开
-
每日一题《leetcode--382.链表随机结点》
当我们看到随机这两个字时,应该就会想起rand()这个函数。接着我们把使用这个函数生成的随机值与链表的长度进行模运算,这样子求出的结果就不会大于链表长度。这道题我们首先看到题目中的要求:在单链表中随机选取一个链表中的结点,要使每个结点被选取的概率是一样的。原创 2024-05-24 19:15:00 · 158 阅读 · 0 评论 -
leetcode -- 114.二叉树展开为链表
题目中要求把链表展开为单链表,并且展开后的链表要跟二叉树的前序遍历顺序相同。原创 2024-06-11 20:10:23 · 192 阅读 · 0 评论 -
每日一题《leetcode--114.二叉树展开为链表》
如果一个节点的左子节点不为空,则该节点的左子树中的最后一个节点被访问之后,该节点的右子节点被访问。该节点的左子树中最后一个被访问的节点是左子树中的最右边的节点,也是该节点的前驱节点。具体做法是,对于当前节点,如果其左子节点不为空,则在其左子树中找到最右边的节点,作为前驱节点,将当前节点的右子节点赋给前驱节点的右子节点,然后将当前节点的左子节点赋给当前节点的右子节点,并将当前节点的左子节点设为空。对当前节点处理结束后,继续处理链表中的下一个节点,直到所有节点都处理结束。原创 2024-06-05 11:00:00 · 130 阅读 · 0 评论 -
每日一题《leetcode--206.反转链表》
这道题可以定义一个新结点newhead,newhead指向NULL。此时遍历所给链表将遍历的每个结点头插到newhead上。原创 2024-06-04 10:00:00 · 358 阅读 · 0 评论 -
每日一题《leetcode--LCR 029.循环有序列表的插入》
2、整个列表只有一个结点,需要在头结点后插入新结点,随机把新结点的next指向头结点。3、整个列表的结点 >1 ,在插入新结点后要保证整个列表是循环升序的。1、整个列表是空列表,需要返回插入的结点。原创 2024-06-03 15:04:30 · 178 阅读 · 0 评论 -
每日一题《leetcode-- LCR 025.两数相加||》
分别把给定的两个链表翻转,然后从头开始相加。原创 2024-06-02 14:02:54 · 264 阅读 · 0 评论 -
每日一题《leetcode--LCR 022.环形链表||》
我们使用两个指针,fast 与 slow。它们起始都位于链表的头部。随后slow 指针每次向后移动一个位置,而fast 指针向后移动两个位置。如果链表中存在环,则fast 指针最终将再次与slow 指针在环中相遇。原创 2024-06-01 15:08:49 · 497 阅读 · 0 评论 -
每日一题《leetcode--LCR 021.删除链表的倒数第N个结点》
这道题我们可以设一个哨兵位,然后把要遍历链表的结点指向该哨兵位。最后用for循环将指针指向要删除结点的前一个。原创 2024-05-31 14:47:01 · 236 阅读 · 0 评论 -
每日一题《leetcode--2058. 找出临界点之间的最小和最大距离》
这道题要求我们求出临界点的最大距离和最小距离。要想求最大和最小距离,首先我们得先求出每个临界点。注意:节点只有在同时存在前一个节点和后一个节点的情况下,才能成为一个。前一个节点和后一个节点,那么这个节点就是一个。前一个节点和后一个节点,那么这个节点就是一个。原创 2024-05-30 10:07:56 · 600 阅读 · 0 评论 -
每日一题《leetcode--117.填充每个结点的下一个右侧结点指针||》
这道题与我之前发布的题目116是一样的解题过程,只是本题所给的数组大小与116不同,这是需要注意的。原创 2024-05-29 15:31:21 · 189 阅读 · 0 评论 -
每日一题《leetcode--59.螺旋矩阵 》
这道题跟我昨天发布的那道题一模一样,只需要注意这个矩阵是n*n。原创 2024-05-28 10:32:52 · 339 阅读 · 0 评论 -
每日一题 <leetcode--2326.螺旋矩阵>
函数中给出的int* returnSize和int** returnColumnSizes是需要我们返回数值的,这点需要注意。其中int** returnColumnSizes 是需要额外开辟一块空间。填充,所以我们使用memset函数来把这个数组的初值给赋值为-1,在随后的操作中会用链表中的值一一覆盖掉数组中原有的值-1。这道题我们首先需要malloc出一快空间来把链表存放在数组中,然后题目中说了如果还存在剩余的空格,则用。其次就是实现螺旋矩阵,这里 我是先填充外层,最后再填充内层。原创 2024-05-27 18:40:38 · 301 阅读 · 0 评论 -
每日一题《leetcode--2816.翻倍以链表形式表示的数字》
处理完头结点后,就需要考虑其余结点。因为求的是链表中每个结点翻倍后的值,所以对于每个结点我们都需要考虑到进位的问题。因为每个数*2后再加上进位的数值也不可能超过20 ,所以最多进位1.这里我们直接模拟翻倍后链表的数字,首先我们得先考虑链表的头结点的值是否大于4(*2后是否需要进位)。原创 2024-05-26 11:33:36 · 163 阅读 · 0 评论 -
每日一题《leetcode--398.随机数索引》
根据题目所知,所给的数组中有重复的元素。让我们随机输出给定的目标数字的下标索引。原创 2024-05-25 14:46:20 · 146 阅读 · 0 评论 -
每日一题《leetcode--116.填充每个结点的下一个右侧结点》
https://img-blog.csdnimg.cn/img_convert/3f298e0c3c6b400497db49dd355cd29e.png原创 2024-05-23 14:53:13 · 196 阅读 · 1 评论 -
每日一题《leetcode--143.重排链表》
第一种:用数组存储该链表,然后通过访问数组下标的方式来改变该链表的排列方式。第二种方法:我们可以用三个端口函数来实现。这道题我们可以用两种方法。将原链表的右半端反转。将原链表的两端合并。原创 2024-05-21 15:13:37 · 256 阅读 · 0 评论 -
每日一题《leetcode--1472.设计浏览器历史记录》
这里我是用双栈实现前进和后退。原创 2024-05-20 20:50:37 · 282 阅读 · 0 评论 -
每日一题《leetcode--817.链表组件》
我的理解是先用calloc把一个数组的值全设为0,接着把这个数组中下标为给定数组nums中的值改成1。接着再用下标为head的数组进行遍历。原创 2024-05-19 10:55:05 · 144 阅读 · 1 评论 -
每日一题《leetcode--2095.删除链表的中间节点》
【代码】每日一题《leetcode--2095.删除链表的中间节点》原创 2024-05-18 08:23:39 · 128 阅读 · 0 评论 -
每日一题《leetcode--1721.交换链表中的节点》
这道题我们可以通过两个循环来找到链表正数第k个节点和倒数第k个节点。原创 2024-05-17 19:02:26 · 221 阅读 · 0 评论 -
每日一题《leetcode--1669.合并两个链表》
首先得找到list2插入list1的前一个节点和 后一个节点,然后把list2给插入进去。原创 2024-05-16 14:33:26 · 156 阅读 · 0 评论 -
每日一题《leetcode--125.分割链表》
因此我们需要求出链表的长度n,然后用链表长度n/分隔的部分的个数k,得到每个部分一开始应有的节点个数;最后用链表长度n%分隔的部分的个数k,得到剩余的节点数。这里类似于平均分苹果,先把苹果一个一个平分到每个人手上。随后把剩余的苹果从头开始往后分。原创 2024-05-15 15:47:57 · 214 阅读 · 0 评论 -
每日一题《leetcode--2487.从链表中移除节点》
因此我们可以使用递归算法,一直调用此函数到链表中的最后一个节点。从最右边的节点开始判定该节点的值与该节点的next的值进行比较。移除每个右侧有更大数值的节点,所以对于右边的节点是不受影响的。原创 2024-05-14 16:46:35 · 218 阅读 · 0 评论 -
每日一题《leetcode -- 1019.链表中的下一个更大节点》
这里我直接定义两个指针phead和cur使其分别指向head和phead。然后让这两个指针遍历整个链表。原创 2024-05-13 17:22:54 · 134 阅读 · 0 评论 -
每日一题《leetcode -- 2807.在链表中插入最大公约数》
这道题是在原链表相邻结点的中间插入一个新结点,但是这个新结点的值是这两个相邻结点的最大公约数。如果要求两个数的最大公约数可以用辗转相除法,这样就可得到两个数的最大公约数。原创 2024-05-12 14:56:55 · 184 阅读 · 1 评论