日常刷题
文章平均质量分 59
分享解题思路
优雅的落幕
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
每日一题---根据二叉树创建字符串
还有要注意最后返回的StringBuffer要把头部与尾部的()去除,使用substring()进行裁剪。然后就是注意细节:当左边为空,右边不为空时,还需要额外打印一个“()”思想:按照先序遍历的思想,在遍历打印数字之前打印一下()先序遍历是先打印根节点,然后递归左右节点。原创 2025-03-20 13:02:33 · 153 阅读 · 0 评论 -
每日一题---翻转二叉树
那么以上就是全部题解了,欢迎大家补充更多解题思路,如有问题也欢迎大家指正!这道题比较简单,所以有许多思路,我先展示个人认为最容易理解的递归。root出栈 root.left,root.right入栈。一次出栈两个并交换再入栈,直到为空...2.使用临时变量存储递归后的节点的左右。1.先处理业务,再完成向下递归的操作。这里借用Krahets的代码进行讲解。注意与对称二叉树区分。进行出栈-交换-入栈。原创 2025-03-17 23:25:35 · 208 阅读 · 0 评论 -
每日一题---环形链表II
通过创建快慢指针,快指针fa每次走两个节点,慢指针每次走1个节点,正常没有环时,两者是永远不会相遇的,但当存在环时,由于快指针会回头,当两者相遇时就说明链表存在环。答:使用双指针,另一个新的指针从head开始(head距离成环节点的距离恰好为a),当两者相遇,相遇点即为成环节点。走到这里break时两者就相遇了,但题目要求返回成环的节点,所以我们需要找其中的数学关系,找到成环节点。设fa到相遇节点走的路程为2s , 设fa比sl多走了mb圈,那么sl的路程就是2s-mb = s。如果链表无环,则返回。原创 2025-03-17 13:22:58 · 290 阅读 · 0 评论 -
每日一题---相交链表(双指针)
将两个链表的长度剪成相同长度,这样就变得很简单,只是剪的过程比较麻烦,我们可以分别遍历记录链表长度再截取,这里介绍一种个人感觉比较有趣的剪法。将一个链表的节点一个一个add进入set中,判断另一个节点有重复的吗,有的话就有相交的。思路与之前差不多,只是不在进行剪了,而是进行加法。看图可知最后一定会达到判断相同节点的地方(如果有)这个思路比较简单,但是空间复杂度较高。将两个链表的长度都补充为A+B。当A循环完成之后就继续循环B。B循环完成之后就循环A。将两个链表都变成A+B。原创 2025-03-17 14:17:31 · 209 阅读 · 0 评论 -
每日一题---反转链表(经典老题,附大量图解)
这是一道很经典的题,因为在许多其他的链表题中都需要使用(单独实现),所以我单独整理出来,供大家参考,互相学习。原创 2025-03-17 17:48:12 · 700 阅读 · 0 评论 -
每日一题---链表的回文结构
因为这道题空间复杂度为O(1),所以不能创建数组之类的额外变量。原创 2025-03-17 19:17:43 · 177 阅读 · 0 评论 -
每日一题---数组中两个字符串的最小距离
给定一个字符串数组strs,再给定两个字符串str1和str2,返回在strs中str1和str2的最小距离,如果str1或str2为null,或不在strs中,返回-1。来源:牛客网输入包含有多行,第一输入一个整数n(1≤n≤105)(1 \leq n \leq 10^5)(1≤n≤105),代表数组strs的长度,第二行有两个字符串分别代表str1和str2,接下来n行,每行一个字符串,代表数组strs (保证题目中出现的所有字符串长度均小于等于10)。输出一行,包含一个整数,代表返回的值。原创 2025-03-15 17:31:24 · 527 阅读 · 0 评论 -
每日一题---dd爱框框(Java中输入数据过多)
实例:3 5这道题要解决Java中输入的数过多时,时间不足的的问题。原创 2025-03-15 20:18:14 · 454 阅读 · 0 评论 -
每日一题---单词搜索(深搜)
在主函数中两层循环遍历整个二维数组,找出所有满足等于单词第一个字符的,然后创建一个深搜函数,把这个节点的下标.以及第几个字母传入dfs函数,这个函数用于判断单词是否在二维数组中.时间复杂度:单词起点一共有 n2个,单词的每个字母一共有上下左右四个方向可以选择,但由于不能走回头路,所以除了单词首字母外,仅有三种选择。,我们定义这样一种搜索顺序,即先枚举单词的起点,然后依次枚举单词的每个字母。单词由相邻单元格的字母连接而成,相邻单元指的是上下左右相邻。给出一个二维字符数组和一个单词,判断单词是否在数组中出现,原创 2025-03-15 21:52:18 · 317 阅读 · 0 评论 -
每日一题---腐烂的苹果(广度优先搜索)
腐烂的苹果每分钟会向上下左右四个方向的苹果传播一次病菌,并导致相邻的苹果腐烂。2.每分钟腐烂苹果都会向四周扩散,将队列中的腐烂苹果弹出,并向四周扩散,使用vis记录被感染的苹果,并把被传染的苹果再次加入队列。数据范围: 1≤n,m≤1000 1≤n,m≤1000 ,网格中的值满足 0≤val≤2 0≤val≤2。其中 0 表示这个格子为空、1 表示这个格子有一个完好的苹果,2 表示这个格子有一个腐烂的苹果。给定一个 n×m n×m 的网格,其中每个单元格中可能有三种值中的一个 0 , 1 , 2。原创 2025-03-15 22:46:54 · 318 阅读 · 0 评论
分享