数据结构和算法
数据结构和算法
全部文章
题解
读书笔记(1)
归档
标签
去牛客网
登录
/
注册
数据结构和算法的博客
关注微信公众号“数据结构和算法”,每日一题
全部文章
/ 题解
(共70篇)
【数据结构和算法】递归,BFS,DFS3种解决方式
来自专栏
1,递归 这题最容易想到的就是递归,啥叫“递归”,也就是下面这张图开个玩笑,我们画个图来看下原理很简单,代码如下 public int TreeDepth(TreeNode root) { return root==null? 0 : Math.max(TreeDepth(root...
DFS
二叉树
BFS
2021-03-15
15
1174
【数据结构和算法】合并链表,递归和非递归两种解决方式
来自专栏
1,非递归解决 这题比较简单,因为链表是升序的,我们只需要遍历每个链表的头,比较一下哪个小就把哪个链表的头拿出来放到新的链表中,一直这样循环,直到有一个链表为空,然后我们再把另一个不为空的链表挂到新的链表中。我们就以3→4→7→9和2→5→6两个链表来画个图看一下是怎么合并的。 publi...
合并
链表
2020-12-21
14
1010
【数据结构和算法】BFS和DFS两种方式解决
来自专栏
1,BFS解决 其实这就是二叉树的BFS,也可以看下之前讲的373,数据结构-6,树 , 就是这样,一层一层打印,使用队列解决 public ArrayList<ArrayList<Integer>> levelOrder(TreeNode root) { ...
DFS
二叉树
层次遍历
BFS
2020-12-21
15
1397
【数据结构和算法】大数相加,3种方式解决
来自专栏
1,从尾部插入 实际上这道题求的是两个字符串相加,我们就用两个很短的字符串"12367"+"89"为例画个图来看下是怎么计算的 它相当于两个字符串从最右边开始相加,比如我们要计算s字符串的最右边的那个数字和t字符串最右边的那个字符相加 int i = s.length() - 1, j = t.l...
大数
大数相加
字符串
2020-12-21
82
6336
【数据结构和算法】链表是否有环3种方式解决
来自专栏
1,快慢指针解决 判断链表是否有环应该是老生常谈的一个话题了,最简单的一种方式就是快慢指针,慢指针针每次走一步,快指针每次走两步,如果相遇就说明有环,如果有一个为空说明没有环。代码比较简单 public boolean hasCycle(ListNode head) { if (head =...
链表
有环
2020-12-21
223
5784
【数据结构和算法】3种方式解决
来自专栏
1,使用栈解决 链表的反转是老生常谈的一个问题了,同时也是面试中常考的一道题。最简单的一种方式就是使用栈,因为栈是先进后出的。实现原理就是把链表节点一个个入栈,当全部入栈完之后再一个个出栈,出栈的时候在把出栈的结点串成一个新的链表。原理如下 import java.util.Stack; publ...
java
反转
链表
2020-12-21
816
54597
【数据结构和算法】剑指offer-JZ3. 从尾到头打印链表
来自专栏
输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 答案: 1,使用栈来解决 从尾到头打印链表,首先这个链表是单向的,如果是双向的,直接从后往前打印就行了,这里链表不是单向的。 这里最容易想到的一种方式就是把链表的节点全部压栈,因为栈是先进后出的一种数据结构,全部压栈之后再一个个出栈...
打印
反转
链表
2020-08-07
2
957
【数据结构和算法】剑指offer-JZ2. 替换空格
来自专栏
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 答案: 1,先把字符串转换为单个字符 这里让求的是把字符串中的空格替换成%20,其中一种实现方式就是申请一个临时数组,然后再遍历这个字符串的...
java
2020-08-07
2
827
【数据结构和算法】剑指offer-JZ1. 二维数组中的查找(暴力和线性查找)
来自专栏
剑指 Offer 4. 二维数组中的查找 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 答案: 1,暴力求解 当然最容易想到的是暴力求解,就是一个个...
java
查找
线性
二分法
2020-08-07
14
1346
【数据结构和算法】剑指offer-JZ50. 数组中重复的数字(4种实现方式)
来自专栏
JZ50. 数组中重复的数字 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 ...
java
重复的数字
2020-08-07
4
1174
首页
上一页
1
2
3
4
5
6
7
下一页
末页