给出一个整数数组,请在数组中找出两个加起来等于目标值的数,
你给出的函数twoSum 需要返回这两个数字的下标(index1,index2),需要满足 index1 小于index2.。注意:下标是从1开始的
假设给出的数组中只存在唯一解
例如:
给出的数组为 {2, 7, 11, 15},目标值为9
输出 ndex1=1, index2=2
<?php
/**
* @param $arr
* @param $sum
* @return array
* @brief 这种方式把重复数据的情况考虑进去了
*/
function twoSum($arr, $sum) {
$newArr = array();
foreach ($arr as $key => $value) {
if (isset($newArr[$sum - $value])) {
return [$newArr[$sum - $value] , $key];
}
if (!isset($newArr[$value])) {
$newArr[$value] = $key;
}
}
}
$arr = [5,5,1,12];
$sum = 10;
$ret = twoSum($arr, $sum);
print_r($ret);