PHP Sum 3数字等于确切数字(Performance Issue)

时间:2012-12-28 03:51:37

标签: php performance

我正在寻找一个总结3个数字的解决方案(在数组中 - 这是一个给定的数字列表),它与数字完全相同。

例如

$sum = 172300
$array = array(11000,
1100,
2000,
1000,
4500,
83200,
3700,
29000
7000,
500,
1000,
2000,
20000
)

我曾尝试过这个解决方案,但是,我将我的PHP设置为execute_time为6000,它也无法给我一个结果。 https://stackoverflow.com/revisions/76ee7de8-574f-4b0a-b078-8edff66d885d/view-source

我希望我能得到帮助来解决这个问题。我确实尝试过3SUM解决方案,它也无法输出结果。

我的数组列表大约有100个值,意味着它有很多可能的组合,任何解决方案都可以帮助减少执行时间吗?

我需要帮助才能解决这个问题。

2 个答案:

答案 0 :(得分:1)

对数组进行排序。拿最大的项目,然后寻找第一项(从第二大项开始),这样两个项目加起来小于目标。然后,从最小的项目开始,看看是否匹配。如果没有,请将第二个号码向下移动一个,然后重试。重复此步骤,直到第二步小于(最大的一个 - 目标)的一半。此时,丢弃最大的项目,并重复整个过程(减去排序)。

您应该以比随机搜索更优化的方式找到您的解决方案。

答案 1 :(得分:0)