我正在尝试使用sed清理URL行以仅提取域名..
所以来自:
http://www.suepearson.co.uk/product/174/71/3816/
Run Code Online (Sandbox Code Playgroud)
我想要:
(有或没有火车斜线,没关系)
我试过了:
sed 's|\(http:\/\/.*?\/\).*|\1|'
Run Code Online (Sandbox Code Playgroud)
和(逃避非贪婪量词)
sed 's|\(http:\/\/.*\?\/\).*|\1|'
Run Code Online (Sandbox Code Playgroud)
但我似乎无法使非贪婪量词工作,所以它总是最终匹配整个字符串.
我理解硬币改变问题的贪婪算法(用尽可能少的硬币支付特定金额)是如何工作的 - 它总是选择具有最大面额但不超过剩余总和的硬币 - 并且它总能找到正确的解决方案特定的硬币套装.
但是对于一些硬币集,有贪婪算法失败的总和.例如,对于集合{1, 15, 25}和总和30,贪婪算法首先选择25,剩余5,然后五个1,总共六个硬币.但硬币数量最少的解决方案是选择15两次.
一组硬币必须满足哪些条件才能使贪心算法找到所有金额的最小解?
与最小生成树的Kruskal算法相反吗?我的意思是,每一步选择最大重量(边缘)?
找到最大生成树的任何其他想法?
在使用方面,动态编程和贪婪方法之间的主要区别是什么?
据我所知,贪婪的方法有时会提供最佳解决方案; 在其他情况下,动态编程方法提供了最佳解决方案.
为了使用一种方法(或另一种方法)获得最佳解决方案,是否必须满足任何特定条件?
在我使用的算法设计和分析导论中,动态编程据说着重于优化原理,"优化问题的任何实例的最优解决方案都由其子实例的最优解决方案组成".
然而,贪婪技术专注于扩展部分构建的解决方案,直到您找到完整问题的解决方案.然后说,它必须是"在该步骤中所有可行选择中最好的本地选择".
既然两者都涉及局部最优性,那么它不是另一个的子集吗?
在树中搜索时,我对统一成本搜索的理解是,对于给定节点A,具有子节点B,C,D且相关成本为(10,5,7),我的算法将选择C,因为它具有更低的花费.扩展C后,我看到节点E,F,G的成本为(40,50,60).它将选择40,因为它具有3的最小值.
现在,是不是和贪婪搜索一样,你总是选择最好的动作?
此外,在定义从某些节点到其他节点的成本时,我们应该考虑从树的开头到当前节点的整个成本,还是从节点n到节点n'的成本本身?
谢谢
如何在以下示例中获取所有匹配项:
// Only "abcd" is matched
MatchCollection greedyMatches = Regex.Matches("abcd", @"ab.*");
// Only "ab" is matched
MatchCollection lazyMatches = Regex.Matches("abcd", @"ab.*?");
// How can I get all matches: "ab", "abc", "abcd"
Run Code Online (Sandbox Code Playgroud)
PS:我希望以通用方式获得所有比赛.上面的例子只是一个例子.
我正在尝试实施匈牙利算法,但我坚持第5步.基本上,给定一个n X n数字矩阵,我如何找到最小数量的垂直+水平线,以便覆盖矩阵中的零?
之前有人将这个问题作为一个重复此,该方案中提到有不正确的,别人也跑进贴有代码的bug.
我不是在寻找代码,而是寻找能够绘制这些线条的概念......
编辑:请不要发布简单(但错误)贪心算法:给定此输入:
(0, 1, 0, 1, 1)
(1, 1, 0, 1, 1)
(1, 0, 0, 0, 1)
(1, 1, 0, 1, 1)
(1, 0, 0, 1, 0)
Run Code Online (Sandbox Code Playgroud)
我明确选择第2列(0索引):
(0, 1, x, 1, 1)
(1, 1, x, 1, 1)
(1, 0, x, 0, 1)
(1, 1, x, 1, 1)
(1, 0, x, 1, 0)
Run Code Online (Sandbox Code Playgroud)
现在我可以选择第2行或第1列,它们都有两个"剩余"零.如果我选择col2,我最终会在这条路径上找到错误的解决方案:
(0, x, x, 1, 1)
(1, x, x, 1, 1)
(1, x, …Run Code Online (Sandbox Code Playgroud) 贪心算法和启发式算法有什么区别?
我已经阅读了一些关于这个论点的文章,在我看来它们或多或少是相同类型的算法,因为它们的主要特征是在每次迭代时选择最佳(本地)选项来解决问题.
我正在阅读关于"贪婪"算法的教程,但我很难发现它们解决了真正的"顶级编码器"问题.
如果我知道某个问题可以通过"贪婪"算法解决,那么对解决方案进行编码就非常容易了.但是,如果我没有被告知这个问题是"贪婪的"我无法发现它.
使用"贪婪"算法解决问题的常见属性和模式是什么?我可以将它们减少到已知的"贪婪"问题之一(例如MST)吗?
greedy ×10
algorithm ×7
regex ×2
regex-greedy ×2
c# ×1
dynamic ×1
graph ×1
heuristics ×1
matching ×1
matrix ×1
non-greedy ×1
pcre ×1
sed ×1