算法
朱子鱼
这个作者很懒,什么都没留下…
展开
-
网络延迟时间_华为OD_网络病毒传染
可以转换为树求最短路径Dijkstra。即先找到第一个点到下一个点的最短路径,不可到达的都为空。然后再这些路径中找的一个最短的作为下一个可以到达的最短路径。依次将其放入小根堆中,因此每次弹出来的就都是这个点最小的路径,如果有路径已经使用过后,就可以跳过。1、一般图问题是贪心算法,而贪心一般用排序或者堆进行解决。堆即动态排序的复制度为lgn。需要多久才能使所有节点都收到信号?如果不能使所有节点收到信号,返回。是一个信号从源节点传递到目标节点的时间。原创 2023-12-27 17:33:47 · 366 阅读 · 0 评论 -
N叉树与二叉树的相互转换
将一颗N叉树转换成一颗二叉树,将一棵二叉树树还原成一棵N叉树。原创 2023-12-15 15:21:37 · 45 阅读 · 0 评论 -
二叉树序列化
将二叉树转换成字符串进行持久化,将字符串还原成二叉树。原创 2023-12-15 15:07:35 · 33 阅读 · 0 评论 -
二叉树按层遍历
【代码】二叉树按层遍历。原创 2023-12-13 16:12:27 · 34 阅读 · 0 评论 -
二叉树遍历_非递归
将头节点放入栈中,然后弹出,打印头节点。如果右节点不是空就放入栈中,然后如果左节点不是空就放入栈中。后面弹出栈后每次都相当于一颗新树。原创 2023-12-12 15:48:28 · 312 阅读 · 0 评论 -
最多线段覆盖数
1、做题一定要自测,尽管所写的思路是对的,但是在做题过程中的一些小细节没有注意会有很多问题。原创 2023-12-09 10:40:50 · 25 阅读 · 0 评论 -
快排_java
1. baseCase:结束递归的条件,不知道的化可以再接下来的处理中进行判断2. 处理过程,即将大问题分解为小问题的过程3. 获取小问题过程,看是否需要进行合并。快排不需要合并的过程,再处理中就将要排序的列表进行处理了。原创 2023-12-08 11:59:30 · 18 阅读 · 0 评论 -
区间和的个数
leetcode原创 2023-12-08 09:36:50 · 422 阅读 · 0 评论 -
查找出现基数次的数_位运算
就题目而言只要找出两只出现一次的数,我们可以直接用map存储Key:int,Value是次数,然后遍历找到出现基数次的两数即可。主要对位运算的使用,加快运算速度不需要额外的时间复杂度。原创 2023-12-07 14:32:55 · 15 阅读 · 0 评论 -
局部最小_BS
求局部最小原创 2023-12-07 11:19:59 · 117 阅读 · 0 评论 -
二分查找java
1. `int M = L+((R-L)>>1)` 避免R+L超过int类型取值范围,`>>1`位运算加快厂里速度。2. 基于二分的思想进行查找对应的值,因已知目标数组是有序这个规律,就不需要一个一个遍历去看。从而节约时间,将时间复杂度从O(n)优化到O(lgn)。 启发:利用规律,获取便利。原创 2023-12-06 15:50:28 · 285 阅读 · 0 评论