数据结构和算法
数据结构和算法
全部文章
分类
读书笔记(1)
题解(70)
归档
标签
去牛客网
登录
/
注册
数据结构和算法的博客
关注微信公众号“数据结构和算法”,每日一题
TA的专栏
96篇文章
70人订阅
数据结构和算法
73篇文章
55670人学习
常见数据结构介绍
4篇文章
733人学习
【面试精华】各大厂算法面试真题
19篇文章
180人学习
全部文章
(共89篇)
【数据结构和算法】青蛙跳台阶
这题和前面 DP1 斐波那契数列基本上是一样的,不同的是,这里斐波那契数列的起始项是1,2,3,5,8,我们把它改一下即可 解法一 题中要求的是 空间复杂度 O(1) ,很明显使用递归是行不通的,我们先改成非递归的看一下(这种复杂度也是不行的,我们先看一下代码) import java.util.S...
Java
动态规划
斐波那契
青蛙跳台阶
2022-02-18
8
1350
【数据结构和算法】斐波那契数列
解法一 题中要求的是 空间复杂度 O(1) ,很明显使用递归是行不通的,我们先改成非递归的看一下(这种复杂度也是不行的,我们先看一下代码) import java.util.Scanner; public class Main { public static void main(Stri...
Java
动态规划
斐波那契
2022-02-18
12
1913
【数据结构和算法】四指针解决
四指针解决 在算法中双指针我们经常听过,但四指针还是比较少的,四指针顾名思义就是使用4个指针来解决。 这题是让把节点值小于x的节点都放到前面,最简单的一种解决方式就是把原链表的节点分隔为两个链表,其中一个链表节点的值都是小于x的,另一个链表节点的值都是大于或等于x的,最后再把这两个链表合并即可。这里...
java
链表
2021-08-03
2
1032
【数据结构和算法】顺时针旋转矩阵
先上下交换,在对角线交换 这题是让把矩阵顺时针旋转90度,最简单的一种方式就是先上下关于中心线翻转,然后再对角线翻转,具体看下图形分析 原理比较简单,来直接看下代码 public int[][] rotateMatrix(int[][] matrix, int n) { i...
java
数组
2021-08-03
8
1366
【数据结构和算法】递归和非递归两种方式解决
递归解决 判断二叉树是否是对称,需要从子节点开始比较,两个子节点的值必须相同,并且左子节点的右子节点(如果有)必须等于右子节点的左子节点,左子节点的左子节点必须等于右子节点的右子节点。就像下面图中那样 public boolean isSymmetric (TreeNode root) { ...
java
二叉树
递归
2021-08-03
3
779
【数据结构和算法】BFS和DFS两种方式解决
BFS打印 二叉树的的层次遍历就是一层一层的遍历,也就是我们俗称的BFS(宽度优先搜索算法(又称广度优先搜索)),之前在373,数据结构-6,树 中讲过树的宽度优先搜索,最简单的方式就是使用队列。但这题打印的时候多了一个条件,就是不能一直从一个方向打印,要先从左边打印然后再从右边打印……,就这样交替...
java
DFS
BFS
二叉树
2021-08-03
6
1124
【数据结构和算法】3种解决方式
问题分析 做这题之前我们先来看一下树的几种遍历顺序。 先序遍历:根节点→左子树→右子树。 中序遍历:左子树→根节点→右子树。 后续遍历:左子树→右子树→根节点。 其实也很好记,他是根据根节点遍历的顺序来定义的,比如先遍历根节点就是先序遍历,中间遍历根节点就是中序遍历,最后遍历根节点就是后续遍历,至于...
java
二叉树
2021-08-03
22
1278
【数据结构和算法】递归方式解决
递归方式解决 题中说了要转换为一棵高度平衡的二叉搜索树,并且数组又是排过序的,这就好办了。 我们可以使用递归的方式,每次取数组中间的值比如m作为当前节点,m前面的值都是比他小的,作为他左子树的结点值。m后面的值都是比他大的,作为他右子树的节点值,示例中一个可能的结果是。 代码如下 public T...
java
二叉树
DFS
递归
2021-08-03
4
866
【数据结构和算法】递归和非递归解路径总和问题
递归求解 这题让判断从根节点到叶子节点的所有路径中,有没有和等于sum的,如果看过之前讲的《442,剑指 Offer-回溯算法解二叉树中和为某一值的路径》 ,再来看这一题就觉得这题有点简单了。第442题要求的是把所有的和等于sum的路径都打印出来,而这题只要判断有一个路径的和等于sum即可。 我们可...
java
DFS
二叉树
BFS
递归
2021-08-03
22
1281
【数据结构和算法】递归解决
这道题要求的最大路径和如果是从根节点开始到叶子节点就好办了,我们可以通过递归的方式,从下往上,舍去比较小的路径节点,保留比较大的节点。 但这道题要求的最大路径和并不一定经过根节点,如果再使用上面的方式就行不通了,对于这道题我们可以分为4种情况来讨论 1,只要当前节点,舍弃子节点。比如下面结点2的左右...
java
二叉树
递归
2021-08-03
7
664
首页
上一页
1
2
3
4
5
6
7
8
9
下一页
末页