算法分析与设计
Daniel_26_
这个作者很懒,什么都没留下…
展开
-
TSP问题——动态规划
问题描述 假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。 动态规划 假设dp(i,V)表示从原点(0)出发经过集合V中的各个顶点各一次回到i点时的最短路径距离(V中不包含i) 则dp(i,V)=min(dist(i,k)+dp(k,V-{k}))(k∈V) dp(i,0)=dist(i,0) V的表示:以二进制来表示,例如0b110表示点3和点2在集合V中 源代码 /**原创 2020-07-23 16:07:20 · 631 阅读 · 0 评论 -
交错字符串
题目描述: 给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的。 示例 1: 输入: s1 = “aabcc”, s2 = “dbbca”, s3 = “aadbbcbcac” 输出: true 示例 2: 输入: s1 = “aabcc”, s2 = “dbbca”, s3 = “aadbbbaccc” 输出: false 解题思路 动态规划 设f[i][j]表示s1的前i个字符和s2的前j个字符能否组成s3的前i+j个字符 如果s3[i+j-1]的最后一个字符为s1原创 2020-07-21 11:39:08 · 145 阅读 · 0 评论 -
正则表达式匹配
题目描述 请实现一个函数用来匹配包含’. ‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(含0次)。匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但与"aa.a"和"ab*a"均不匹配。 设正则表达式为p,主串为s,s前面i-1个字符和p前面j-1个字符已经匹配 1.递归法 1)若p[j]不为’’,p[j+1]不为’’,则比较s[i]与p[j],若s[i]==p[j]或者p[j]为’.’,将主串和模式串均像后原创 2020-07-20 16:11:09 · 1408 阅读 · 0 评论 -
八数码问题——回溯法
将棋盘状态用一维数组表示 如下图,初始状态表示为 “283164705” 算法思想: 使用回溯法。 按照当前布局进行DFS搜索,以当前布局是否出现过进行剪枝对象。 #include<cstdio> #include<cstring> #include<string> #include<map> #include<queue> #include <iostream> #include<stack> u...原创 2020-06-19 21:01:24 · 1558 阅读 · 0 评论