数据结构和算法
数据结构和算法
全部文章
分类
读书笔记(1)
题解(70)
归档
标签
去牛客网
登录
/
注册
数据结构和算法的博客
关注微信公众号“数据结构和算法”,每日一题
TA的专栏
76篇文章
67人订阅
数据结构和算法
73篇文章
54597人学习
常见数据结构介绍
3篇文章
606人学习
全部文章
(共72篇)
【数据结构和算法】18种解法,直接上代码
来自专栏
java的18种写法,之前在公众号《数据结构和算法》中分为3个系列专门写过,这里就不在细写了,我把答案全部列出来,因为太多,我只给一些简单的提示,如果不懂的可以看下前面写的那3个系列,有图文分析364,位1的个数系列(一)385,位1的个数系列(二)402,位1的个数系列(三)或者也可以在下面留言,...
java
二进制
位运算
2021-03-17
4
821
【数据结构和算法】递归,BFS,DFS3种解决方式
来自专栏
1,递归 这题最容易想到的就是递归,啥叫“递归”,也就是下面这张图开个玩笑,我们画个图来看下原理很简单,代码如下 public int TreeDepth(TreeNode root) { return root==null? 0 : Math.max(TreeDepth(root...
DFS
二叉树
BFS
2021-03-15
15
1174
【数据结构和算法】什么叫回溯算法,一看就会,一写就废
来自专栏
什么叫回溯算法 对于回溯算法的定义,百度百科上是这样描述的:回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标...
java
回溯算法
2021-03-15
3
0
【数据结构和算法】合并链表,递归和非递归两种解决方式
来自专栏
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
首页
上一页
1
2
3
4
5
6
7
8
下一页
末页