《leetCode-php》寻找数组中两个数的和等于另一个数

给出一个整数数组,请在数组中找出两个加起来等于目标值的数, 

你给出的函数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);
发布了284 篇原创文章 · 获赞 32 · 访问量 49万+

猜你喜欢

转载自blog.csdn.net/less_cold/article/details/102595916