数据结构和算法
数据结构和算法
全部文章
题解
读书笔记(1)
归档
标签
去牛客网
登录
/
注册
数据结构和算法的博客
关注微信公众号“数据结构和算法”,每日一题
全部文章
/ 题解
(共8篇)
【数据结构和算法】双指针求接雨水问题,图文结合
来自专栏
1,三指针求解 这题让求柱子中间能盛多少水,首先可以肯定两边的两个柱子是不能盛水的,只有两边之间的柱子有可能会盛水。最简单的一种方式就是使用3个指针,先找到最高的柱子,用一个指针top指向最高柱子,然后最高柱子左边用两个指针,一个left,一个right(这里的left和right指向柱子的高度)。...
java
数组
双指针
2021-04-03
44
2394
【数据结构和算法】双指针,递归等3种解决方式
来自专栏
1,非递归解决 这题让删除链表的倒数第n个节点,首先最容易想到的就是先求出链表的长度length,然后就可以找到要删除链表的前一个结点,让他的前一个结点指向要删除结点的下一个结点即可,这里就以示例为例画个图看一下再来看下代码 public ListNode removeNthFromEnd(...
递归
java
链表
双指针
2021-04-02
10
1410
【数据结构和算法】StringBuilder,双指针等3种实现方式
来自专栏
1,使用StringBuilder 使用StringBuilder,一行代码搞定 public String solve(String str) { return new StringBuilder(str).reverse().toString(); } 2,...
java
字符串
双指针
2021-04-02
18
1145
【数据结构和算法】双指针,栈,递归3种解决方式
来自专栏
1,双指针求解 这题要求链表的倒数第k个节点,最简单的方式就是使用两个指针,第一个指针先移动k步,然后第二个指针再从头开始,这个时候这两个指针同时移动,当第一个指针到链表的末尾的时候,返回第二个指针即可。注意,如果第一个指针还没走k步的时候链表就为空了,我们直接返回null即可。 publi...
递归
java
栈
双指针
2021-04-02
77
2262
【数据结构和算法】集合,双指针等3种解决方式
来自专栏
1,通过集合set解决 做这题最容易想到的一种解决方式就是先把第一个链表的节点全部存放到集合set中,然后遍历第二个链表的每一个节点,判断在集合set中是否存在,如果存在就直接返回这个存在的结点。如果遍历完了,在集合set中还没找到,说明他们没有相交,直接返回null即可,原理比较简单,直接看下代码...
链表
双指针
2021-03-19
9
930
【数据结构和算法】快慢指针以及集合两种方式解决
来自专栏
这题可以参照《判断链表中是否有环》 ,答案我之前写过《链表是否有环3种方式解决》 ,这两道题有非常大的相似地方。 1,快慢指针解决 在前面我们提到过快慢指针,先判断是否有环,如果有环,在来找环的入口。我们假设是有环的,那么会有两种情况,我们来画个图看一下 1,环很大 假如他们在相遇点相遇了,那么慢指...
链表
双指针
2021-03-19
10
2460
【数据结构和算法】双指针解决
来自专栏
1,双指针解决 题中说了只有小写字母,最简单的就是使用双指针,一个指向前,一个指向后,两个指针同时往中间走,如果两个指针指向的字符不一样就返回false,来看下代码 public boolean judge(String str) { if (str.length() == ...
回文
双指针
2021-03-19
24
1265
【数据结构和算法】动态规划,双指针,单调栈等6种解决方式
来自专栏
1,动态规划解决 这题是让求完成一笔交易所获得的最大利润,首先我们来看一下使用动态规划该怎么解决,动态规划还是那常见的几个步骤 确定状态 找到转移公式 确定初始条件以及边界条件 计算结果 我们来定义一个二维数组dp[length][2],其中dp[i][0]表示第i+1天(i是从0开始的)结...
单调栈
双指针
动态规划
2021-03-19
51
1978