Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
Example
Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1].
Structure
class Solution { /** * @param Integer[] $nums * @param Integer $target * @return Integer[] */ function twoSum($nums, $target) { //code goes here } }
One Solution:
class Solution { /** * @param Integer[] $nums * @param Integer $target * @return Integer[] */ $map = []; $map[$nums[$i]] = $i; } $complement = $target - $nums[$i]; return [$i, $map[$complement] ]; } } throw new IllegalArgumentException("No two sum solution"); } } $instance = new Solution(); $result = $instance->twoSum([2, 7, 11, 15, 20], 26);
Output:
( [0] => 2 [1] => 3 )