算法自学
鹿鸣春野
一切都可能离你而去,只有代码永不背叛,永不嫌弃,永远遵守规则,永远按道理行事
展开
-
【编程学习笔记】动态规划的核心——状态转移方程(递归方程)
在上一章中讲了基本的动态规划思路,但上一章中的状态转移(即小问题之间的关系)过于简单。(上一章:https://blog.csdn.net/qq_42152365/article/details/107304816)今天来看一道经典题:动态规划,首先考虑状态是什么(“小问题”)以及状态之间的关系:假设我们一共有6个数[1,2,3,4,5,6],现在已经写好了一个父节点4,手里还有几个数[1,2,3,5,6],根据二叉搜索树的定义,我要把[1,2,3]挂在左子树,[5,6]挂在右子树上。我原创 2020-07-15 10:09:22 · 4915 阅读 · 0 评论 -
【编程学习笔记】老子今天一定要学会动态规划!
从刚开始接触算法到现在,已经无数次听到动态规划这个算法了。似乎每次看到一道不会做的算法题,旁边就会有大佬喊道“这不就典型的DP嘛”,然后三下五除二解决了。于是,我无数次地想要功课这个神乎其神的算法,却每次在看到那令人头痛的公式之后就望而却步。如今!作为一个已经接触算法四年的我!一定要学会动态规划!!!一、基本思想动态规划就是把一个大问题A,分解成小问题A1、A2、A3、A4.....,然后A1的输出为A2的输入,A2的输出为A3的输入...以此类推,使得一个复杂的问题变成多个简单的.原创 2020-07-13 11:12:09 · 697 阅读 · 0 评论 -
SPFA算法
SPFA算法(本文中的图片来源于博友的博客,图中有水印)作用:找最短路径说明:是dijkstra的优化,动态寻找某个点到其它点的最短路径,尤其可以处理有向负权值 算法:1.选取一个起点S,设定一个记录S到其它所有点距离的数组并初始化,操作如下:①设定地图②设定距离数组(S,S)=0,(S,Ki≠S)=inf③设定处理队列{S}2.对队列中的每一个点Ki进行以...原创 2018-10-26 20:49:41 · 1088 阅读 · 0 评论 -
Kruskal与并查集
Kruskal(本文中的图片来源于CSDN博友,图中有水印)作用:构成最小生成树说明:需要用到并查集算法来优化判断回路的过程,相较与Prim,算法稍微复杂但编程相对简单,在稀疏图中更优越 算法:【Kruskal】1.将图中所有的边长权值按从小到大的顺序排列,从小的开始选取边:①如果发现连上会形成环, 放弃这条边,继续寻找下一个边②如果发现连上不会成环,连接这条边...原创 2018-10-30 01:28:15 · 3970 阅读 · 2 评论