美文网首页
计算 两数之和

计算 两数之和

作者: 啦啦一路高歌 | 来源:发表于2020-08-30 09:07 被阅读0次

题目:1. 两数之和

题目描述: 给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同样的元素.

示例:$nums = [2,7,11,15]; $target = 9;  因为 nums[0] + $nums[1] = 2+7 = 9; 所以返回[0,1]

解答:

一种: 暴力解法

```

function sum($nums,$target){

    $ind = [];

    for($i = 0 ;$i < count($nums); $i++ ){

        for($j = $i + 1 ; $j < count($nums) ; $j++){

            if($nums[$i]  + $nums[$j] == $target){

                $ind = [$i,$j];

                    break;

                }

        }}

return $ind;

}

# print_r(sum($nums,$target));die;

//  第二种:   两趟查询

function mapSum($nums,$target){

    foreach($nums as $k=>$v){

        unset($nums[$k]);

        if(in_array(($target - $v),$nums)){

                return [$k,array_search(($target - $v),$nums)];

            }}

}

# print_r(mapSum($nums,$target));die;

# 第三种  map方式

function mapSum1($nums,$target){

$arr = [];

        foreach($nums as $k=>$v){

            if(array_key_exists($target - $v,$arr)){

                return [$k,$arr[$target-$value]];

        }

        $arr[$v] = $k;

    }

    return $arr;

}

# print_r(mapSum1($nums,$target));die;

```

相关文章

网友评论

      本文标题:计算 两数之和

      本文链接:https://www.haomeiwen.com/subject/aaissktx.html