随笔分类 -  算法

摘要:给定 N 辆火车,每辆火车以数字1-9编号,火车站只有一个方向进出,同时停靠在火车站的列车中,只有后进站的出站了,先进站的才能出站。求所有的火车出站的方案。 例如给定输入 1 2 3 输出为 1 2 3 1 3 2 2 1 3 2 3 1 3 2 1 该问题属于栈的问题,可以用递归的思想解决,即每次 阅读全文
posted @ 2021-01-23 14:06 Bill_H 阅读(283) 评论(0) 推荐(0) 编辑
摘要:全排列问题可以用递归解决。假设我们要对1,2,3,4四个数进行全排列,分四种情况: (a) 以 1 开头,求 2,3,4 全排列 (b) 以 2 开头,求 1,3,4 全排列 (c) 以 3 开头,求 1,2,4 全排列 (d) 以 4 开头,求 1,2,3 全排列 而对于 3 个数的全排列也可以按 阅读全文
posted @ 2021-01-22 13:46 Bill_H 阅读(135) 评论(0) 推荐(0) 编辑
摘要:最长公共子串问题是寻找两个或多个已知字符串最长的子串。此问题与最长公共子序列问题的区别在于子序列不必是连续的,而子串却必须是。 求解最长公共子串可以借助动态规划法,思路如下: 求 'ABCDEF' 和 'BCDF' 的最长公共子串,首先可以建立两组字符串,分别是 'A' 'AB' 'ABC' 'AB 阅读全文
posted @ 2021-01-21 23:08 Bill_H 阅读(365) 评论(0) 推荐(0) 编辑
摘要:Levenshtein距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。 求解Levenshtein距离可以依靠动态规划。例如将源字符串'yabd'转换成目标字符串'abc',该问题的求解步骤 阅读全文
posted @ 2021-01-21 16:34 Bill_H 阅读(175) 评论(0) 推荐(0) 编辑
摘要:求一个序列的最长上升子序列长度可以通过动态规划求解。动态规划的思想是将一个问题分成多个阶段,每一阶段的解依靠其之前阶段的解推出。按照动态规划的思想,在求解序列[2, 5, 1, 5, 4, 5]的最长上升子序列时,可以将问题分解为: 以2为结尾的序列[2]的最长上升子序列长度, 以5为结尾的序列[2 阅读全文
posted @ 2021-01-20 22:31 Bill_H 阅读(112) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示