算法
文章平均质量分 74
MLGDOU
这个作者很懒,什么都没留下…
展开
-
【算法】区间dp
区间dp,简单来说就是从小区间到大区间进行动态规划。从两道题来理解区间dp的方法。原创 2024-04-30 13:46:00 · 947 阅读 · 1 评论 -
【算法】二分查找(红绿灯法)
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。=target)这里我们采用的思路是先查找target元素找出如果找不到则返回-1,如果找到则是找到target出现的第一个元素。原创 2024-04-02 17:00:45 · 500 阅读 · 6 评论 -
【算法】记忆化搜索
拿斐波那契数列举例可以发现一般的求解过程中,有很多重复的子问题,递归的本质就是深度优先遍历,如果此时我们可以记录下此时的值然后记录在哈希表中,下一次递归前先去哈希表中查找如果有该值的答案直接返回即可。这样完全二叉树就可以转为单链结构。原创 2024-03-31 19:21:53 · 981 阅读 · 2 评论 -
【算法】拓扑排序
有向无环图(DAG图)顶点活动图(AOV图):类似于流程图,顶点表示活动,箭头表示先后顺序找到做事情的先后顺序,拓扑排序的结果可能不是唯一的1.找出图中入度为0的点,然后输出2.删除与改点相连接的边3.重复1、2操作,直到图中没有点。原创 2024-03-28 20:25:05 · 648 阅读 · 6 评论 -
【算法】单源最短路问题之Dijkstra算法
第三次更新时,我们已经确定了s到y权值最小,由y去更新其相连的边t,x,z,如果比dist中的小则更新。第四次更新时,我们已经确定了s到y到z的权值最小,由z去更新其所连的边x,算出来权值13比14小则替换dist中x的值。同时记录父节点z的下标,s中记录2已被使用过。为讲解方便,我们把顶点syztx记为01234.dist表初始值为INT_MAX.,pPath存节点的父节点,一个bool数组s来表示是否以它为顶点遍历过。类似于贪心算法,最开始选取原点s,然后更新dist表0位置,因为s到s权值为0。原创 2024-03-27 14:31:08 · 474 阅读 · 9 评论 -
【算法】回溯与深搜
1.构建决策树2.设计代码:全局变量、dfs函数3.剪枝,回溯。原创 2024-03-23 19:59:17 · 556 阅读 · 6 评论 -
【算法】欧拉筛(线性筛)模版
试题 B: 双子数本题总分:5 分【问题描述】若一个正整数 x 可以被表示为 p2 × q2,其中 p、q 为质数且 p , q,则 x 是一个 “双子数”。请计算区间 [2333, 23333333333333] 内有多少个 “双子数”?【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。原创 2024-03-18 18:07:13 · 359 阅读 · 3 评论 -
【算法】递归
函数自己调用自己,主问题由相同的子问题组成,子问题又由相同的子问题组成。原创 2024-03-05 18:02:05 · 783 阅读 · 3 评论