数据结构和算法
数据结构和算法
全部文章
分类
读书笔记(1)
题解(70)
归档
标签
去牛客网
登录
/
注册
数据结构和算法的博客
关注微信公众号“数据结构和算法”,每日一题
TA的专栏
76篇文章
67人订阅
数据结构和算法
73篇文章
54597人学习
常见数据结构介绍
3篇文章
606人学习
全部文章
(共72篇)
【数据结构和算法】判断回文链表,图文详解
来自专栏
1,反转后半部分链表 这题是让判断链表是否是回文链表,所谓的回文链表就是以链表中间为中心点两边对称。我们常见的有判断一个字符串是否是回文字符串,这个比较简单,可以使用两个指针,一个最左边一个最右边,两个指针同时往中间靠,判断所指的字符是否相等。 但这题判断的是链表,因为这里是单向链表,只能从前往...
java
链表
栈
2021-03-21
50
2159
【数据结构和算法】递归和非递归,以及公式计算等4种实现方式
来自专栏
1,递归的写法 这题我们可以参照之前分析的青蛙跳台阶问题,其实原理是完全一样的我们来分析一下: 当n等于1的时候,只需要跳一次即可,只有一种跳法,记f(1)=1 当n等于2的时候,可以先跳一级再跳一级,或者直接跳二级,共有2种跳法,记f(2)=2 当n等于3的时候,他可以从一级台阶上跳两步上来,也...
斐波那契数列
java
动态规划
2021-03-21
22
1371
【数据结构和算法】集合,双指针等3种解决方式
来自专栏
1,通过集合set解决 做这题最容易想到的一种解决方式就是先把第一个链表的节点全部存放到集合set中,然后遍历第二个链表的每一个节点,判断在集合set中是否存在,如果存在就直接返回这个存在的结点。如果遍历完了,在集合set中还没找到,说明他们没有相交,直接返回null即可,原理比较简单,直接看下代码...
链表
双指针
2021-03-19
9
925
【数据结构和算法】快慢指针以及集合两种方式解决
来自专栏
这题可以参照《判断链表中是否有环》 ,答案我之前写过《链表是否有环3种方式解决》 ,这两道题有非常大的相似地方。 1,快慢指针解决 在前面我们提到过快慢指针,先判断是否有环,如果有环,在来找环的入口。我们假设是有环的,那么会有两种情况,我们来画个图看一下 1,环很大 假如他们在相遇点相遇了,那么慢指...
链表
双指针
2021-03-19
10
2409
【数据结构和算法】双指针解决
来自专栏
1,双指针解决 题中说了只有小写字母,最简单的就是使用双指针,一个指向前,一个指向后,两个指针同时往中间走,如果两个指针指向的字符不一样就返回false,来看下代码 public boolean judge(String str) { if (str.length() == ...
回文
双指针
2021-03-19
24
1255
【数据结构和算法】动态规划,双指针,单调栈等6种解决方式
来自专栏
1,动态规划解决 这题是让求完成一笔交易所获得的最大利润,首先我们来看一下使用动态规划该怎么解决,动态规划还是那常见的几个步骤 确定状态 找到转移公式 确定初始条件以及边界条件 计算结果 我们来定义一个二维数组dp[length][2],其中dp[i][0]表示第i+1天(i是从0开始的)结...
单调栈
双指针
动态规划
2021-03-19
51
1957
【数据结构和算法】BFS和DFS两种方式实现
来自专栏
1,BFS打印 二叉树的BFS打印,就是一层一层的往下打印,就像下面这样具体可以看下373,数据结构-6,树,这里介绍了递归和非递归的解法。非递归的代码如下 public static void levelOrder(TreeNode tree) { if (tree == ...
DFS
打印
二叉树
BFS
2021-03-19
6
1045
【数据结构和算法】使用栈解决,图文详解
来自专栏
要判断括号的有效性,左括号必须和右括号相对应。如果是有效括号,并且他们中间还有括号,那么他们必须也是有效的,所以最简单的一种方式就是使用栈来解决。 我们遍历字符串中的所有字符 1,如果遇到了左括号,就把对应的右括号压栈(比如遇到了字符'(',就把字符')'压栈)。2,如果遇到了右括号 1)查看...
栈
2021-03-19
38
1335
【数据结构和算法】参照归并排序,3种解决方式。
来自专栏
1,参照归并排序 可以参照归并排序,具体可以看下《排序-归并排序》 public void merge(int[] nums1, int m, int[] nums2, int n) { int temp[] = new int[m + n]; int ind...
排序
数组
2021-03-18
18
991
【数据结构和算法】非递归和递归两种方式解决
来自专栏
1,非递归解决 每k个一组进行反转,如果不够k个就不需要反转,关于链表的反转,不会的可以看下《432,剑指 Offer-反转链表的3种方式》 。最简单的一种方式就是把链表每k个分成一组,然后反转这每一组的节点,接着在把他们串起来即可。 public ListNode reverseKGrou...
java
反转
链表
2021-03-18
51
2331
首页
上一页
1
2
3
4
5
6
7
8
下一页
末页