基础算法合集
文章平均质量分 86
一只鱼^_
感谢大家的点赞和关注
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
基础算法合集-图论
单源最短路径问题(用来计算一个点到其他所有顶点的最短路径)1. 初始化: 先找出从源点V0到各终点Vk的直达路径(V0,Vk), 即通过一条弧到达的路径2. 选择: 从这些路径中找出一条长度最短的路径(V0,u)3. 更新: 然后对其余各条路径进行适当的调整若在图中存在弧(u,Vk), 且(Vo,u,Vk)<(Vo,Vk), 则以路径(Vo,u,Vk) 代替(Vo,Vk)4. 把V分成两组:(1) S: 已求出最短路径的顶点的集合。原创 2025-07-01 00:03:11 · 1024 阅读 · 0 评论 -
基础算法合集-埃氏筛/欧拉筛
讲解: 从小到大枚举每个数, 如果当前数没划掉, 必定是质数, 记录该质数;枚举当前质数的倍数, 必定是合数, 划掉合数。对于100%的数据,n=10^8, 1<=q<=10^6, 保证查询的素数不大于n。An表示1,2...n的最小公倍数, 求L...R的中不同数的个数。第一行包含两个正整数n, q, 分别表示查询的范围和查询的个数。若i是合数, 则最多枚举到自身的最小质数中断。1. 如果当前数没划掉, 必定是质数, 记录该质数。2. 枚举已记录的质数(如果合数已越界则中断)时间复杂度:O(n)原创 2025-06-30 15:35:47 · 389 阅读 · 0 评论 -
力扣刷题合集(持续更新)
在过去一年的时间里, 我在力扣这个平台刷了很多很多的题, 后面就转战牛客, 蓝桥云课等竞赛平台了, 现在我以此篇文章来对力扣刷题做个总结。由于本人水平有限, 仅仅做经验分享 ,但还是希望这篇文章对你有所帮助, (语言的话, 这次就选择C++和Java, 但是本人很少用Java刷题, 因此会在题目中介绍的java的相关方法, 也就当学习了)学过面向对象都知道, 力扣是采用核心代码模式, 只用去实现对应类中的方法即可, 那我们直接开讲吧(由于题目可能会有很多, 所以就不贴题目, 只分享思路和代码)原创 2025-05-24 13:40:01 · 656 阅读 · 0 评论 -
基础算法合集-线段树
比如有一个数组【3,1,4,1,5,9,2,6】 ,我们要找到>=6的数, 我们就直接硬二分, 中间切一刀, 如果左侧有>=6的数, 那右侧就排除了, 如果左侧没有>=6的数, 那么只能去右半边找了。接下来就是, 找区间内的第一个>=X 的数, 并更新为 -1, 返回这个数的下标[注:递归的时候先比较左子树根节点, 再比较右子树根节点]1->2->4->8, 区间分别是[0,7]->[0,3]->[0,1]->[0,0], 此时l=r=0, mx[8]=3,左侧:【3,1,4,1】右侧:【5,9,2,6】原创 2025-04-25 23:38:49 · 1124 阅读 · 0 评论 -
基础算法合集-并查集
mp用于快速判断邮箱是否出现过,并帮助找到它第一次出现的账户,从而用并查集把这些账户合并在一起,归属到同一个人。这个 map<int, vector<string>> ms 主要用于在合并完账户后,按照每个合并后的用户收集他们的所有邮箱地址。原创 2025-04-23 20:10:18 · 1096 阅读 · 0 评论 -
基础算法合集-二分查找(三种写法)
34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣(LeetCode)题目描述: 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。原创 2025-04-23 19:06:19 · 622 阅读 · 0 评论
分享