【发布时间】:2017-11-19 18:44:14
【问题描述】:
我有一个包含从 -10 到 10(没有 0)的 n 个数字的数组。实现从总和为0的数组中返回对数量的函数。
例如:
$input = 数组 (3, 6, -3, 5, -10, 3, 10 >、1、7、-1、-9、-8、7、7、 -7, -2, -7);
正确答案是 5(对以粗体表示)
我做了这样的东西,但它给了我 10 双:
$length = count($input) - 1;
$count = 0;
for ($i = 0; $i <= $length; $i++) {
for ($j = $i + 1; $j <= $length; $j++) {
if ($input[$i] + $input[$j] == 0) {
$count++;
}
}
}
echo $count;
【问题讨论】:
-
5 和 10 之间的关系是否表明了特定的东西?
-
是的,因为正确答案应该是 5。我得到了 10,因为我的函数需要重复到最终结果
-
如果您考虑一下为什么它会计算两次配对,您会发现您可以通过将内部循环的起始编号更改为不为 1 来解决此问题。