24得票3回答
如何识别“贪心算法”?

我正在阅读一篇关于“贪心算法”的教程,但是我很难发现它们如何解决真正的“Top Coder”问题。 如果我知道一个给定的问题可以用“贪心”算法来解决,那么编写解决方案就很容易。然而,如果没有告诉我这个问题是“贪心”的,我就无法识别它。 哪些常见属性和模式被贪心算法解决?我能否将它们归结为已...

24得票2回答
Dijkstra算法是一种贪心或动态规划算法吗?

在这篇文章中,将 Dijkstra算法描述为贪心算法,而在这里和这里则显示它与动态规划算法有关。 那到底是哪个呢?

21得票9回答
赢得Hangman游戏的最佳算法

在游戏“Hangman”中,贪婪的字母频率算法是否等同于最大获胜概率的算法? 是否有情况值得为了更好猜对答案而牺牲剩余生命保值? 问题的进一步说明: - 要猜的单词从已知的词典中获取。 - 您有N个生命,因此必须使猜测单词中的所有字母的概率最大,而不会犯N个错误(即您可以拥有无限次的正确...

18得票3回答
定界符之间的匹配文本:贪婪或懒惰正则表达式?

针对匹配定界符(例如<和>)之间的文本的常见问题,有两种常用模式: 使用贪婪的 * 或 + 量词并采用形式为START [^END]* END 的表示方式,例如 <[^>]*>,或 使用懒惰的 *? 或 +? 量词并采用形式为START .*? END 的表示...

15得票10回答
贪心算法的使用示例?

贪心算法有什么用?能给一个实际的例子吗?

14得票6回答
给定一个整数数组,使用数组中的数字找到最大的可以被3整除的数字。

例如:数组:4,3,0,1,5 {假设所有数字都大于等于0。数组中的每个元素对应一个数字(即数组中的每个元素都介于0和9之间)。} 在上述数组中,最大的数字是:5430 {使用来自数组的5、4、3和0位数字} 我的方法: 要想被3整除,需要数字的总和被3整除。 所以, 1.步骤1:从数...

13得票2回答
贪心算法的正确性

在非递减(正)整数序列中,当时,可以从该序列中删除两个元素。最多可以从此序列中删除多少对元素? 因此,我想到了以下解决方案: 将给定序列分为两部分(第一部分和第二部分)。 为它们中的每一个分配迭代器 - 分别为it_first := 0和it_second := 0,count := 0...

13得票7回答
使高度之间的最大差异最小化

给定n座塔的高度和一个值k。我们需要将每个塔的高度增加或减少k(仅一次),其中k> 0。任务是在修改后最小化最高塔和最短塔之间的高度差,并输出此差异。 我理解解决方案的直觉,但无法对以下解决方案的正确性进行评论。 // C++ program to find the minimum p...

12得票3回答
正则表达式表现懒惰,应该变为贪婪。

我认为默认情况下我的正则表达式会表现出我想要的贪婪行为,但是在以下代码中它并没有: Regex keywords = new Regex(@"in|int|into|internal|interface"); var targets = keywords.ToString().Split...

12得票2回答
Tetris难题的多项式时间解决方案

这是一个基于俄罗斯方块的难题。在这个难题中,我们会得到下降的n个方块序列,我们的任务是在GameOver之前最大化得分。对于一般俄罗斯方块问题没有已知的多项式时间算法,但是在这个难题中只允许I型(直线型)方块,不能旋转。 以下是限制条件: 棋盘是W x H的矩形 我们得到接下来n个方块的...