给定一个整数数组,A 1,A 2,...,A n,包括负数和正数,以及另一个整数S.现在我们需要在数组中找到三个不同的整数,其总和最接近给定的整数S如果存在多个解决方案,则其中任何一个都可以.
您可以假设所有整数都在int32_t范围内,并且计算总和时不会发生算术溢出.S没什么特别的,只是随机挑选的数字.
有没有比强力搜索更有效的算法来找到三个整数?
我有一个十进制数字(让我们称之为目标)和一个其他十进制数字的数组(让我们调用数组元素)我需要找到总和为目标的元素的所有数字组合.
我倾向于使用C#(.Net 2.0)中的解决方案,但最好的算法可能无论如何都会获胜.
您的方法签名可能类似于:
public decimal[][] Solve(decimal goal, decimal[] elements)
Run Code Online (Sandbox Code Playgroud)