28得票3回答
在函数式编程语言中难以实现哪些算法?

我正在尝试使用函数式语言,并发现有些算法(尤其是那些使用动态规划的算法)在编写时更难且有时最坏情况下的运行时间更低效。在使用不可变变量和无副作用的函数式语言中,是否存在一类较低效的算法? 同时,是否有参考资料可以帮助我编写更难的算法(也许是通过共享状态进行优化的算法)? 谢谢

27得票7回答
将二进制字符串中的通配符替换,避免出现三个连续的相同字母

给定长度为N的字符串S,返回一个由将字符串S中的每个'?'替换为'a'或'b'字符的结果组成的字符串,并且该字符串不包含连续三个相同的字母(换句话说,处理后的字符串中既不允许出现'aaa'也不允许出现'bbb')。 示例:Given S="a?bb", output= &q...

27得票7回答
谷歌面试:在给定整数数组中找到所有连续子序列,其总和落在给定范围内。我们能比O(n^2)更好吗?

给定一个整数数组和范围(low,high),找到数组中所有连续的子序列,它们的总和在范围内。是否有比O(n^2)更好的解决方案? 我已经尝试了很多但都没有找到比O(n^2)更好的解决方案。请帮助我找到更好的解决方案或确认这是我们能做到的最好解决方案。这就是我现在拥有的,我假设范围被定义为[l...

26得票1回答
Scala记忆化:这个Scala记忆化是如何工作的?

以下代码来自Pathikrit的动态规划存储库。我对它的美丽和奇特感到困惑。 def subsetSum(s: List[Int], t: Int) = { type DP = Memo[(List[Int], Int), (Int, Int), Seq[Seq[Int]]] imp...

25得票6回答
寻找最繁忙时段的算法?

我有一些数据,格式如下:1: 2 - 10 2: 3 - 15 3: 4 - 9 4: 8 - 14 5: 7 - 13 6: 5 - 10 7: 11 - 15 我将尝试进行说明以使其更清晰: 1 2 3 4 5 6 7 ...

25得票14回答
将一个数字列表分成两个等和列表的算法

有一个数字列表。 需要将该列表分成两个大小相等的列表,使它们的和之差最小。需要打印这两个列表的和。#Example: >>>que = [2,3,10,5,8,9,7,3,5,2] >>>make_teams(que) 27 27 以下代码算法在某些情况下是...

25得票2回答
Kadane算法中的动态规划方面

Initialize: max_so_far = 0 max_ending_here = 0 Loop for each element of the array (a) max_ending_here = max_ending_here + a[i] (b) i...

25得票9回答
给定一串数字和多个乘法运算符,最高可以计算出多少?

这是一个我面试时遇到的问题,我非常尴尬地被难住了。想知道是否有人能够想出答案并提供其大O表示法。Question: Given a string of numbers and a number of multiplication operators, what is th...

24得票5回答
3个或更多字符串的最长公共子序列

我正在尝试寻找3个或更多字符串的最长公共子序列。维基百科文章有一个很好的描述,介绍了如何为两个字符串解决此问题,但我不太确定如何将其扩展到3个或更多字符串。 有许多库可以用于查找2个字符串的LCS,因此如果可能的话,我想使用其中之一。 如果我有3个字符串A、B和C,那么将A和B的LCS命名为...

24得票12回答
使用手机键盘生成10位数字

给定下面所示的手机按键: Given a phone keypad as shown below:1 2 3 4 5 6 7 8 9 0 从数字1开始,按照象棋游戏中马的移动方式,可以形成多少个不同的10位数字?例如,如果我们在数字1处,则下一个数字可以是6或8;如果我们在数字6处,则下...