算法
文章平均质量分 69
啊vvvv
热爱后端的小白一枚。
坚持更文,欢迎关注。
展开
-
最小生成树
贪心策略:如果我们自己去找最小生成树,以我自己为例,可能每次我都会下意识的去找 对应那一点可以走的最小的点,但是走到第三张图的时候,我就无法再走下去了,所以贪心策略不是以当前点为中心,找到他可达周围的最小点。正确的贪心策略应该是,从目前可达的点中,选择一个最小的点去到达。如果G的一个子图G’是一颗包含G的所有顶点的树,则称G’为G的生成树。在G的所有生成树中,耗费最小的生成树称为G的最小生成树。大白话:在一个无向图中,找到点数 - 1 个边可以连起来所有顶点,并且所有边权加起来最小。原创 2023-05-25 17:46:11 · 991 阅读 · 0 评论 -
Dijkstra单源最短路
描述:给定一个带权有向图G = (V,E),其中每条边的权时非负数。另外,给定V中的一个顶点,称为源。现在要计算从源到所有其他各顶点的最短路长度。这里路的长度是指路上各边权之和。这个问题通常称为单源最短路径问题。以下图的题为例,进行分析。设源点为顶点1,采用Dijkstra算法求下图中源V0为到其余各顶点的最短路径。原创 2023-05-20 18:31:25 · 715 阅读 · 0 评论 -
动态规划 --- 01背包
01背包,从暴力递归一步步优化到动态规划。原创 2023-05-04 16:52:57 · 474 阅读 · 0 评论 -
动态规划 --- 电线布设
其实写到dp [ i ] [ j ] = dp [i - 1] [ j ] 还能理解,但是dp [ i ] [ j ] = Math.max(dp [ i - 1 ] [ j ] , dp [i - 1] [ end[ i ] - 1] + 1 ) 怎么去理解?如果 j >= end[i],判断当前连线能否加入最大不相交子集 dp [ i ] [ j ] = Math.max(dp [ i - 1 ] [ j ] , dp [i - 1] [ end[ i ] - 1] + 1 )当 i == 1时,原创 2023-04-27 18:23:12 · 1728 阅读 · 0 评论