面试题:x,y,z是一个整数数组的三个不同的元素,找到所有x = y +z的组合 ?
题目:x,y,z是一个整数数组的三个不同的元素,找到所有x = y +z的组合,在实现题目要求的基础上尽可能使用更优的算法.
我的实现代码:
$arr = [1, 2, 5, 6, 7];
foreach ($arr as $value) {
foreach ($arr as $val) {
if ($val == $value) {
continue;
}
$sum = $value + $val;
if ($sum != $value && $sum != $val && in_array($sum, $arr)) {
echo "$sum = $value + $val <br>";
}
}
}
还有更优的实现方式吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
稍优化了一点,按你的算法,有n个元素的数组,要循环
回复里说的好,我没有考虑负数的情况,如果要考虑负数,哪把最大数pop出来,就不行了,只能重新维护一条新数组,用来枚举所有值,修改如下