![](https://img-blog.csdnimg.cn/b9ffdf18209b482ea778608cdf10f616.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
oj练习
文章平均质量分 59
菜狗时不时的练习题专栏。
南桥几晴秋
阿里云乘风破浪计划专家博主 笔记分享 脚踏实地
展开
-
[笔试强训day09]
添加逗号(模拟)、DP2跳台阶、扑克牌顺⼦原创 2024-05-27 10:25:02 · 200 阅读 · 7 评论 -
[笔试强训day08]
【代码】[笔试强训day08]原创 2024-05-13 17:29:33 · 356 阅读 · 12 评论 -
[笔试强训day07]
OR59 字符串中找出连续最长的数字串NC109 岛屿数量NC109 岛屿数量解法二:dfs拼三角拼三角原创 2024-05-11 15:38:49 · 169 阅读 · 0 评论 -
[笔试强训day06]
NC1⼤数加法/NC40链表相加(⼆)/NC10⼤数乘法原创 2024-05-01 10:58:34 · 247 阅读 · 2 评论 -
[笔试强训day05]
JZ62 孩子们的游戏(圆圈中最后剩下的数)]public:int f = 0;i <= n;return f;原创 2024-04-25 09:11:40 · 271 阅读 · 3 评论 -
[笔试强训day04]
【代码】[笔试强训day04]原创 2024-04-23 21:51:28 · 317 阅读 · 2 评论 -
[笔试强训day03]
【代码】[笔试强训day03]原创 2024-04-21 09:17:18 · 326 阅读 · 3 评论 -
[笔试强训day02]
【代码】[笔试强训day02]原创 2024-04-20 09:08:18 · 173 阅读 · 0 评论 -
[笔试强训day01]
他每次“点击”,可以把字符串中相邻两个相同字母消除,例如,字符串"abbc"点击后可以生成"ac"。牛牛想把字符串变得尽可能短。他想知道,当他点击了足够多次之后,字符串的最终形态是什么?一个字符串,为“点击消除”后的最终形态。若最终的字符串为空串,则输出0。一个字符串,仅由小写字母组成。(字符串长度不大于300000)但相同而不相邻、不相同的相邻字母都是不可以被消除的。牛牛拿到了一个字符串。原创 2024-04-18 08:26:00 · 390 阅读 · 3 评论 -
力扣572:另一棵树的子树
另一颗树的子树原创 2023-12-03 20:18:01 · 821 阅读 · 9 评论 -
力扣226:翻转二叉树
翻转二叉树原创 2023-12-03 20:04:32 · 523 阅读 · 0 评论 -
相同的树 单值二叉树 二叉树的最大深度
如果两个二叉树都不为空,那么就判断根节点是否相同:如果不相同,那么两个二叉树必定不相同;这是一个递归的过程,也是分治思想,都是去判断两个二叉树自己(根节点)的值是否相同,然后再去遍历左右子树,不是左右孩子。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。输入:p = [1,2], q = [1,null,2]输入:p = [1,2,3], q = [1,2,3]输入:p = [1,2,1], q = [1,1,2]原创 2023-11-30 11:45:14 · 924 阅读 · 2 评论 -
力扣160:相交链表
*输入:**intersectVal = 0, listA = [2,6,4], listB = [1,5], skipA = 3, skipB = 2。给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果 listA 和 listB 有交点,intersectVal == listA[skipA] == listB[skipB],说明两个链表的当前节点地址相同,表明此节点为交点,则停止遍历,最后返回这个节点即可。如果不存在相交节点,这一值为 0。原创 2023-11-15 21:36:46 · 307 阅读 · 10 评论 -
JZ22:链表中倒数第k个结点
先让fast走k步,再让两个指针同时走,直到fast为空时,停止走。需要两个指针,快指针fast,慢指针slow。输入一个链表,输出该链表中倒数第k个结点。最后返回slow指针,即倒数第k个节点。倒数第k个节点和最后一个节点差k-1。原创 2023-11-15 20:35:22 · 511 阅读 · 7 评论 -
力扣203:移除链表元素
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。输入:head = [1,2,6,3,4,5,6], val = 6。输入:head = [7,7,7,7], val = 7。列表中的节点数目在范围 [0, 104] 内。输入:head = [], val = 1。指向头节点,当前指针的前驱pre指向。移除链表中和val值相同的元素。输出:[1,2,3,4,5]定义两个指针,当前指针。,和当前指针之前的指针。原创 2023-11-15 20:08:35 · 195 阅读 · 0 评论 -
力扣876:链表的中间结点
解释:该链表有两个中间结点,值分别为 3 和 4 ,返回第二个结点。给你单链表的头结点 head ,请你找出并返回链表的中间结点。遍历结束后,慢指针所在的节点就是中间节点,返回slow即可。输入:head = [1,2,3,4,5,6]如果有两个中间结点,则返回第二个中间结点。输入:head = [1,2,3,4,5]解释:链表只有一个中间结点,值为 3。fast->next为空时,遍历结束。fast一次走两步,慢指针一次走两步。fast为空时,遍历结束。输出:[3,4,5]输出:[4,5,6]原创 2023-11-10 22:06:42 · 253 阅读 · 3 评论 -
力扣138:随机链表的复制
新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。需要先创建一个新的头指针和尾指针,当尾指针为空时,也就是说新链表里面还没有节点时,此时插入的节点就是这个新链表的头节点。如果不指向任何节点,则为 null。,第二个节点13的随机指针指向的是第一个节点7,第三个节点11的随机指针指向的是第五个节点1…原创 2023-11-11 22:02:38 · 1012 阅读 · 17 评论 -
力扣21:合并两个有序链表
创建一个新的链表,使用head记录新链表的头节点,tail记录新链表的尾节点,逐个比较list1的值和list2的值,较小的尾插到新的链表后面。需要注意的是:在尾插时,刚开始新链表为空,需要判断一下新链表为空,然后使得待插元素为头节点,并且也是尾节点。当list1->val < list2->next,则list1尾插到新链表后面;当list1->val > ist2->next,则list2尾插到新链表后面。输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]原创 2023-11-10 21:30:59 · 255 阅读 · 0 评论 -
力扣206. 反转链表
这里需要注意一下:当n2下一个为空时,此时n3已经为空,n3->next也是空,此时n3已经不需要,因此,需要判断一下n3为不为空。通过n2来遍历链表,n3先到结尾,为空时,此时链表还没有遍历结束,还没有实现全部反转。定义三个指针n1,n2,n3,分别指向NULL,head,head->next。将n1移到n2的位置,n2移动到n3的位置,n3往后移动一个节点。n2还不为空,继续遍历,先反转:n2->next=n1。输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]原创 2023-11-06 22:21:31 · 311 阅读 · 24 评论