数据结构与算法
文章平均质量分 52
Coffey强
雄关漫道真如铁,而今迈步从头越
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ArrayBlockingQueue与LinkedBlockingQueue
BlockingQueue阻塞队列 先把这个接口的几个方法介绍下public interface BlockingQueue<E> extends Queue<E> { //将指定的元素插入到此队列的尾部(如果立即可行且不会超过该队列的容量) //在成功时返回 true,如果此队列已满,则抛IllegalStateException。 boolean add(E e); //将指定的元素插入到此队列的尾部(如果立即可行且不会超过该队列的容量) // 将指定的原创 2021-07-08 19:45:55 · 451 阅读 · 0 评论 -
JDK之HashMap二
上一期讲到用户自定义的不够散列的哈希code可能会导致哈希碰撞,进而引起由链表转化成红黑树的过程今天带大家实地的去看一下这个事情首先得需要调试JDK首先IDEA 默认调试的是下图这两个zip包我们需要改一下这里,把这两个文件复制,解压然后打开IDEA project Structure->Sdks->Sourcepath选项卡删除掉原有的 也就是jdk下的两个zip包 换成解压的文件夹此外 还要把file->setting->build,execution,depl原创 2021-07-02 11:58:01 · 146 阅读 · 2 评论 -
简单聊聊dp
还没掌握dp的小伙伴 推荐两道题 算是很简单的dp一个是LeetCode70 爬楼梯一个是LeetCode198 打家劫舍一般需要用dp解的题 都是求最值问题,dp会出现一个空间 来换取时间拿打家劫舍举例子原始数组是 2 7 9 3 1相邻的不能偷 那么如何求最多能偷多少呢这时候需要注意两点1.拆分子问题2.从后往前看问题首先 最后一个数组是1那么小偷有两种可能1.偷: 那么之前的3 就不会被偷 我们要算之前的最大值 那就是dp[i-2] 之前的最大值算出来了 再加上刚偷的这个1原创 2021-06-24 12:12:32 · 142 阅读 · 2 评论 -
BFS DFS应用场景
DFS(深度优先搜索)和 BFS(广度优先搜索)就像孪生兄弟,提到一个总是想起另一个。然而在实际使用中,我们用 DFS 的时候远远多于 BFS。那么,是不是 BFS 就没有什么用呢?如果我们使用 DFS/BFS 只是为了遍历一棵树、一张图上的所有结点的话,那么 DFS 和 BFS 的能力没什么差别,我们当然更倾向于更方便写、空间复杂度更低的 DFS 遍历。不过,某些使用场景是 DFS 做不到的,只能使用 BFS 遍历。这就是本文要介绍的两个场景:「层序遍历」、「最短路径」。本文包括以下内容:DFS 与原创 2021-06-22 12:17:56 · 2050 阅读 · 2 评论 -
LeetCode_64题解
这是一道需要用动态规划(dp)解的题,在所有dp中,算比较简单的,所以今天来说说思路和图解,首先他求的是最小路径的和,如果是求最短的路径 那么就需要我们利用回溯和BFS去解,求和的话 因为每个小格子移动只会是要么往下 要么往右,现在开始解题,设原始数组为1 3 1 31 5 1 34 2 1 31 1 1 1那么我们根据他的行走路径就可以得出,只要找到图中箭头位置的最小路径和 再加上右下角的1 就是最短路径和,以此类推,设行为i,列为j当i=0时 也就是最上面那行 他只能往右走也就是dp[原创 2021-06-15 12:43:13 · 344 阅读 · 2 评论 -
DFS 回溯 递归算法区别
本文章摘子LeetCode46题 对数组全排列,的评论 觉得写的挺好 所以摘抄过来以作为一种记录,或者参考回溯算法与深度优先遍历以下是维基百科中「回溯算法」和「深度优先遍历」的定义。回溯法 采用试错的思想,它尝试分步的去解决一个问题。在分步解决问题的过程中,当它通过尝试发现现有的分步答案不能得到有效的正确的解答的时候,它将取消上一步甚至是上几步的计算,再通过其它的可能的分步解答再次尝试寻找问题的答案。回溯法通常用最简单的递归方法来实现,在反复重复上述的步骤后可能出现两种情况:找到一个可能存在的正确的原创 2021-06-10 22:07:05 · 652 阅读 · 1 评论 -
数据结构之-带头单链表逆置
1.不创建新头的就地逆置 public static void converse(HeroNode head){ if (head.next==null){ System.out.println("链表为空"); return; } HeroNode x,y; x=head.next; head.next=null ; while (x.next!=null)原创 2021-05-16 12:04:27 · 779 阅读 · 2 评论
分享