和为S的两个数字

输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。

输出描述:
对应每个测试案例,输出两个数,小的先输出。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function FindNumbersWithSum($array, $sum)
{
//存放和为sum的数组
$sumArray = array();
for ($i=0; $i<count($array); $i++){
for ($j=0; $j<count($array); $j++){
//遍历。若和为sum,压入数组
if (array_sum(array($array[$i], $array[$j])) == $sum){
array_push($sumArray, array($array[$i], $array[$j]));
}
}
}
//若不存在和为sum,返回空数组
if (empty($sumArray)){
return $sumArray;
}
//sumArray数组中两数乘积最小对应的键名
$key=array_keys($sumArray, min($sumArray))[0];
//返回该两个数
return $sumArray[$key];
}