自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 【算法】单源最短路径(Spfa)

算法描述 给定一个有向图,求一个出发点到达其它点的最短距离 大致思路 1.用对象数组存储每一条路径的起点、终点、权值 2.用队列记录最短路径被改变的点 3.用邻接表作为图的存储结构 4.遍历邻接表并进行松弛操作 5.判断是否有负环 6.返回源点到达各节点的最短位置 关键点: 1.创建Node类用来创建对象数组进行存储具体路径权值 2.用邻接矩阵或邻接表作为图的存储结构,前者适合稠密图,后者适合稀疏图 3.遍历邻接表并进行松弛操作,通过更新边的值来不断更新最短路,并判断是否有负环 代码实现 //时间复

2021-05-28 00:18:35 282

原创 【算法】字符串的模式匹配(KMP)

【算法】字符串的模式匹配(KMP) 算法描述 给定两个长度的字符串r1和r2,求一个较长字符串是否包含另一个较短字符串且位置在哪里 大致思路 1.prefix数组记录最长公共前后缀 2.根据prefix数组进行子串与主串的模式匹配 3.返回数组下标位置 关键: prefix[k]的值代表的是下标为k的字符前面的字符串最长公共前后缀的长度,也表示该处字符不匹配时应该回溯到的字符的下标 代码实现 //时间复杂度O(m+n) import java.util.Scanner; public class

2021-05-27 01:53:47 264

原创 【算法】最长公共上升子序列(LCIS)

【算法】最长公共上升子序列(LCIS) 算法描述 给定两个长度的字符串r1和r2,求既是r1的子序列又是r2的子序列且该子序列为单调递增的字符串长度最长为多少 子序列:序列的一部分项按原有次序排列而得到的序列 大致思路 1.若两个字符串中只要出现其中一个没有元素,返回0 2.创建一个记录到达对应位置的公共子序列个数的dp二维数组 3.用两层for循环比较,两层都从第2个元素开始,错位逐个记录出dp二维数组的元素的值 4.元素判断是否相等,判断是否为上升序列 5.返回最大的dp数组值 代码实现 //时

2021-05-26 17:10:40 747

原创 【算法】最长公共子序列(LCS)

【算法】最长公共子序列(LCS) 算法描述 给定两个长度的字符串r1和r2,求既是r1的子序列又是r2的子序列的字符串长度最长为多少 子序列:序列的一部分项按原有次序排列而得到的序列 大致思路 1.若两个字符串中只要出现其中一个没有元素,直接返回0 2.创建一个记录到达对应位置的公共子序列个数的dp二维数组 3.用两层for循环比较,两层都从第2个元素开始,错位逐个记录出dp二维数组的元素的值 4.元素比较若相等,dp[i][j] = dp[i-1][j-1]+1 5.元素比较若不相等,dp[i][j

2021-05-26 03:04:48 510

原创 【算法】最长上升子序列(LIS)

【算法】最长上升子序列(LIS) 算法描述 给定一个长度为n的字符串r,求数值单调递增的子序列的长度最长为多少 大致步骤 1.创建一个记录到达对应位置的上升子序列个数的dp数组 2.若字符串只有1个元素,元素本身就构成了最长上升子序列,因此全部元素初始化1 3.用两层for循环比较,第一层从第2个元素开始,逐个记录出dp数组的元素的值 4.第二层用将小于i的前面所有数组元素都进行比较大小 5.判断若为递增,则将记录到达i元素时,已经累计多少个上升子序列个数赋值给dp数组 6.最后创建一个变量并返回最大的d

2021-05-26 01:34:09 491 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除