数据结构和算法
数据结构和算法
全部文章
分类
读书笔记(1)
题解(70)
归档
标签
去牛客网
登录
/
注册
数据结构和算法的博客
关注微信公众号“数据结构和算法”,每日一题
TA的专栏
76篇文章
66人订阅
数据结构和算法
73篇文章
54672人学习
常见数据结构介绍
3篇文章
623人学习
全部文章
(共72篇)
【数据结构和算法】判断链表中是否有环-视频讲解
来自专栏
B站视频合集:https://www.bilibili.com/video/BV1za411n7Hf 解法一 public boolean hasCycle(ListNode head) { Set<ListNode> set = new HashSet<...
链表
Java
2022-07-14
1
481
【数据结构和算法】最小花费爬楼梯
来自专栏
解法一 如果到第i个台阶,我们可以从第i-1个台阶跳一步上来,也可以从第i-2个台阶跳两步上来。哪个花费少我们就选择从哪个跳上来。我们定义dp[i]表示到第i个台阶需要的最小花费,那么我们可以得出递推公式 dp[i] = Math.min(dp[i - 2] + cost[i - 2], dp[i ...
Java
动态规划
跳台阶
2022-02-18
16
1379
【数据结构和算法】跳台阶扩展问题
来自专栏
解法一 这里的青蛙比前面两道题的青蛙更厉害一些,他一次可以跳1阶,2阶,3阶……。所以要想跳到第n个台阶,我们可以从第1个台阶跳上来,也可以从第2个台阶跳上来……,所以递推公式是 f(n)=f(n-1)+f(n-2)+……+f(2)+f(1); 同样如果我们想跳到第n-1个台阶,也可以列出下面这个...
Java
斐波那契数列
青蛙跳台阶
位运算
2022-02-18
20
1665
【数据结构和算法】青蛙跳台阶
来自专栏
这题和前面 DP1 斐波那契数列基本上是一样的,不同的是,这里斐波那契数列的起始项是1,2,3,5,8,我们把它改一下即可 解法一 题中要求的是 空间复杂度 O(1) ,很明显使用递归是行不通的,我们先改成非递归的看一下(这种复杂度也是不行的,我们先看一下代码) import java.util.S...
Java
动态规划
斐波那契
青蛙跳台阶
2022-02-18
8
1305
【数据结构和算法】斐波那契数列
来自专栏
解法一 题中要求的是 空间复杂度 O(1) ,很明显使用递归是行不通的,我们先改成非递归的看一下(这种复杂度也是不行的,我们先看一下代码) import java.util.Scanner; public class Main { public static void main(Stri...
Java
动态规划
斐波那契
2022-02-18
11
1889
【数据结构和算法】四指针解决
来自专栏
四指针解决 在算法中双指针我们经常听过,但四指针还是比较少的,四指针顾名思义就是使用4个指针来解决。 这题是让把节点值小于x的节点都放到前面,最简单的一种解决方式就是把原链表的节点分隔为两个链表,其中一个链表节点的值都是小于x的,另一个链表节点的值都是大于或等于x的,最后再把这两个链表合并即可。这里...
java
链表
2021-08-03
2
994
【数据结构和算法】顺时针旋转矩阵
来自专栏
先上下交换,在对角线交换 这题是让把矩阵顺时针旋转90度,最简单的一种方式就是先上下关于中心线翻转,然后再对角线翻转,具体看下图形分析 原理比较简单,来直接看下代码 public int[][] rotateMatrix(int[][] matrix, int n) { ...
java
数组
2021-08-03
8
1357
【数据结构和算法】递归和非递归两种方式解决
来自专栏
递归解决 判断二叉树是否是对称,需要从子节点开始比较,两个子节点的值必须相同,并且左子节点的右子节点(如果有)必须等于右子节点的左子节点,左子节点的左子节点必须等于右子节点的右子节点。就像下面图中那样 public boolean isSymmetric (TreeNode root) { ...
java
二叉树
递归
2021-08-03
3
758
【数据结构和算法】BFS和DFS两种方式解决
来自专栏
BFS打印 二叉树的的层次遍历就是一层一层的遍历,也就是我们俗称的BFS(宽度优先搜索算法(又称广度优先搜索)),之前在373,数据结构-6,树 中讲过树的宽度优先搜索,最简单的方式就是使用队列。但这题打印的时候多了一个条件,就是不能一直从一个方向打印,要先从左边打印然后再从右边打印……,就这样交替...
java
DFS
BFS
二叉树
2021-08-03
6
1098
【数据结构和算法】3种解决方式
来自专栏
问题分析 做这题之前我们先来看一下树的几种遍历顺序。 先序遍历:根节点→左子树→右子树。 中序遍历:左子树→根节点→右子树。 后续遍历:左子树→右子树→根节点。 其实也很好记,他是根据根节点遍历的顺序来定义的,比如先遍历根节点就是先序遍历,中间遍历根节点就是中序遍历,最后遍历根节点就是后续遍历,至于...
java
二叉树
2021-08-03
22
1290
首页
上一页
1
2
3
4
5
6
7
8
下一页
末页