【发布时间】:2018-04-17 18:59:15
【问题描述】:
为以下问题找到一个有效的算法有点困难。算法必须确定数组中是否有 3 个元素 a、b 和 c,以便 a+b+c 等于给定数字 z。
当然,天真的方法是尝试组合,但渐近所需的时间会太大。
在数组中查找 a 和 b 以使总和为 z 要容易得多。按升序对给定数组进行排序,如果 z-a 存在,则检查每个元素。但我不确定如何在 3 元素问题中实现它以及需要什么时间。
非常感谢任何帮助!
编辑:a、b、c 和 z 是整数。
【问题讨论】:
-
{a,b,c} 可以是负数吗?
-
是的,只是规定所有元素都是整数。
-
这是一个重复的任务吗,如果是的话,什么更可能改变,数组还是z?
标签: arrays algorithm sum element