一个整数数组n,如何找出其中是否存在3个数,其中有俩个数的和等于第三个数,用php写一下代码。
直接上代码
<?php
$arr = [2,3,1,6,5,4,10,9];
function a ($data){
$k_data = array_flip($data);
// $data = array_flip($k_data); // 数组翻转两次是去重,看需求是否需要
sort($data);
$data = array_values($data); // 为了下面可以使用 for 循环
// print_r($data);
$result = [];
$count = count($data);
$max = max($data);
for ($k = 0;$k < $count - 2 ;$k++) {
for ($i=$k + 1; $i < $count - 1; $i++) {
// print_r($i);
$num = $data[$k] + $data[$i];
if (isset($k_data[$num])) {
$result[] = [$data[$k],$data[$i],$num];
}
}
}
return $result;
}
print_r(a($arr));