一个小算法

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/two-sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

class Solution {

    /**
     * @param Integer[] $nums
     * @param Integer $target
     * @return Integer[]
     */
    function twoSum($nums, $target) {
        $found = [];
        $count = count($nums);

        for ($i = 0; $i < $count; $i++) {
            $diff = $target - $nums[$i];

            if (array_key_exists($diff, $found)) {
                return [$found[$diff], $i];
            }

            $found[$nums[$i]] = $i;
            
        }

    }
 
 
  

  function twoSum1($nums, $target) {
    $ore_nums = $nums;
    $arr = [];
    for($i = 0; $i < count($nums); $i++){
      $nums = $ore_nums;
      $diff = $target - $nums[$i];
      unset($nums[$i]);
      $key = array_search($diff,$nums);
      if($key !== false){
        return $arr = [$i,$key];
      }
    }
    return $arr;
  }

 
 
 
 

}
 
 
 
 
 
 
 
 

  

posted @ 2019-11-30 16:41  平静的紫菜汤  阅读(143)  评论(0)    收藏  举报