数据结构和算法
数据结构和算法
全部文章
题解
读书笔记(1)
归档
标签
去牛客网
登录
/
注册
数据结构和算法的博客
关注微信公众号“数据结构和算法”,每日一题
全部文章
/ 题解
(共10篇)
【数据结构和算法】递归和非递归两种方式解决
来自专栏
递归解决 判断二叉树是否是对称,需要从子节点开始比较,两个子节点的值必须相同,并且左子节点的右子节点(如果有)必须等于右子节点的左子节点,左子节点的左子节点必须等于右子节点的右子节点。就像下面图中那样 public boolean isSymmetric (TreeNode root) { ...
java
二叉树
递归
2021-08-03
3
754
【数据结构和算法】递归方式解决
来自专栏
递归方式解决 题中说了要转换为一棵高度平衡的二叉搜索树,并且数组又是排过序的,这就好办了。 我们可以使用递归的方式,每次取数组中间的值比如m作为当前节点,m前面的值都是比他小的,作为他左子树的结点值。m后面的值都是比他大的,作为他右子树的节点值,示例中一个可能的结果是。 代码如下 public ...
java
二叉树
DFS
递归
2021-08-03
4
849
【数据结构和算法】递归和非递归解路径总和问题
来自专栏
递归求解 这题让判断从根节点到叶子节点的所有路径中,有没有和等于sum的,如果看过之前讲的《442,剑指 Offer-回溯算法解二叉树中和为某一值的路径》 ,再来看这一题就觉得这题有点简单了。第442题要求的是把所有的和等于sum的路径都打印出来,而这题只要判断有一个路径的和等于sum即可。 我们可...
java
DFS
二叉树
BFS
递归
2021-08-03
22
1252
【数据结构和算法】递归解决
来自专栏
这道题要求的最大路径和如果是从根节点开始到叶子节点就好办了,我们可以通过递归的方式,从下往上,舍去比较小的路径节点,保留比较大的节点。 但这道题要求的最大路径和并不一定经过根节点,如果再使用上面的方式就行不通了,对于这道题我们可以分为4种情况来讨论 1,只要当前节点,舍弃子节点。比如下面结点2的左右...
java
二叉树
递归
2021-08-03
7
636
【数据结构和算法】双指针,递归等3种解决方式
来自专栏
1,非递归解决 这题让删除链表的倒数第n个节点,首先最容易想到的就是先求出链表的长度length,然后就可以找到要删除链表的前一个结点,让他的前一个结点指向要删除结点的下一个结点即可,这里就以示例为例画个图看一下再来看下代码 public ListNode removeNthFromEnd(...
递归
java
链表
双指针
2021-04-02
10
1393
【数据结构和算法】双指针,栈,递归3种解决方式
来自专栏
1,双指针求解 这题要求链表的倒数第k个节点,最简单的方式就是使用两个指针,第一个指针先移动k步,然后第二个指针再从头开始,这个时候这两个指针同时移动,当第一个指针到链表的末尾的时候,返回第二个指针即可。注意,如果第一个指针还没走k步的时候链表就为空了,我们直接返回null即可。 publi...
递归
java
栈
双指针
2021-04-02
77
2244
【数据结构和算法】4种解决方式,图文详解
来自专栏
1,递归解决 这题非常简单,我们直接按照公式来就可以了F(n) = F(n - 1) + F(n - 2),但要做好边界条件的判断F(0) = 0,F(1) = 1 public int Fibonacci(int n) { if (n < 2) ...
递归
java
斐波那契
2021-04-02
7
939
【数据结构和算法】动态规划和递归两种方式解决
来自专栏
1,动态规划求解 这题求的是从左上角到右下角,路径上的数字和最小,并且每次只能向下或向右移动。所以上面很容易想到动态规划求解。我们可以使用一个二维数组dp,dp[i][j]表示的是从左上角到坐标(i,j)的最小路径和。那么走到坐标(i,j)的位置只有这两种可能,要么从上面(i-1,j)走下来,要么从...
递归
java
动态规划
2021-04-02
19
1541
【数据结构和算法】BFS,DFS,递归等多种实现方式,图文详解
来自专栏
1,BFS解决 之前讲373,数据结构-6,树的时候,提到过二叉树的广度优先搜索,就是一层一层的访问,像下面这样二叉树的BFS代码如下 public static void treeBFS(TreeNode root) { //如果为空直接返回 if (root == null) ...
DFS
递归
java
二叉树
BFS
2021-03-21
93
2336
【数据结构和算法】递归,BFS,DFS等3种实现方式
来自专栏
1,递归 这题最容易想到的就是递归,啥叫“递归”,也就是下面这张图开个玩笑,我们画个图来看下原理很简单,代码如下 public int maxDepth(TreeNode root) { return root==null? 0 : Math.max(maxDepth(root.l...
DFS
递归
java
二叉树
BFS
2021-03-21
35
2542