MeteorChen
MeteorChen
全部文章
题解
归档
标签
去牛客网
登录
/
注册
MeteorChen的博客
全部文章
/ 题解
(共9篇)
提供一种不使用额外空间的纯递归的方式
思路很简单,先通过递归不断往后走,直到函数参数中的cur为空,开始返回。这样在递归栈回退的时候,其实将相当于,从末尾的节点不断一个一个往前走了。那判断回文链表就很好办了,我们用一个全局变量node,初始化为head,然后判断node.val是否等于cur.val和,如果相等,则令node=noe.n...
递归
2020-09-14
0
696
从递归到动态规划,再到BFS
方法1:递归 很明显,这是个递归的问题。我们应该能比较轻松的写出下面的代码: import java.util.*; public class Solution { public boolean wordBreak(String s, Set<String> dict) { ...
递归
动态规划
BFS
2020-04-21
4
1051
递归的方法去做
这道题,最想不通的是为什么要给一个一维数组。给了一维数组需要转换二维数组,而且传参的时候,参数巨多,很容易搞错。总体思路是,采用一个bool类型的和原数组等大的数组来保存节点的访问状态,然后遍历原数组,当原数组中有一个元素的值和str的第一个元素相等时,就去继续判断,判断时,需要将matrix中元素...
递归
图
2020-03-31
2
910
对称的二叉树:两种解法
一、迭代法 迭代的思路是,层次遍历二叉树,将每一层的节点都获取到(空的也要获取),然后用双指针,从两端到中间对比对称位置的元素是否相等。我这里用的是LinkedList,然后LinkedList可以获取从后往前遍历的迭代器,这样就可以很快速的判断对称位置的元素是否相等了。代码如下: import j...
递归
二叉树
2020-03-26
2
884
效率最高的解法
看到好多人用排序或者哈希表。其实没必要这么复杂,我们想,一个数组中有一个数字出现的次数,超过一半,那arr[half]必定是这个数字,其中half=arr.length/2。那这样就简单了,遍历一遍数组,统计arr[half]出现的次数,看是否超过数组长度的一半即可。代码如下: public cla...
数组
2020-03-16
1
855
三种解法
方法1 首先最容易想到的,是用一个数组来存储中序遍历的节点,然后再从头到尾,建立节点前后的连接关系。代码如下: import java.util.ArrayList; public class Solution { public TreeNode Convert(TreeNode pRoot...
递归
二叉树
2020-03-16
155
5819
类似于中缀表达式转后缀表达的思想
感觉这个类似于中缀表达式转后缀表达式的那种类型,最先想到的是用两个栈,代码如下: //使用两个栈来辅助 Stack<Integer> stack1=new Stack<>(); Stack<Integer> stac...
栈
2020-03-13
0
687
树的子结构Java递归实现
这个用递归是比较好实现的,但就是有一点点绕不过来。对比的时候,从第一个节点开始,如果root1.val==root2.val,那么就分别再去比较root1和root2的左右子树,直到root2==null(root1空不空无所谓)。如果root1.val!=root2.val,那再去比较root2是...
递归
二叉树
2020-03-12
0
570
两种方法
一、使用辅助数组 使用两个辅助数组,一个用来存偶数,一个用来存奇数,时间复杂度O(n),代码如下: if (array==null||array.length==0) return; //解法1:排序+额外空间 ...
双指针
2020-03-11
0
587