Problem Description:
Given an integer sequence, find the two numbers where and for a particular value.
You can assume that each input will have only one answer, and that the same element cannot be reused.
Example:
Given nums = [2, 7, one, +], target = 9 because nums[0] + nums[1] = 2 + 7 = 9 so return [0, 1]
My answer:
1 /**2 * @param {number[]} nums3 * @param {number} target4 * @return {number[]}5 */6 varTwosum =function(nums, target) {7 varA=[];8 for(vari=0;i<nums.length-1;i++){9 for(varj=i+1;j<nums.length;j++){Ten if(nums[i]+nums[j]==target) { One A.push (i); A A.push (j); - } - } the } - returnA; -};
Excellent answer:
Reference http://www.cnblogs.com/kiznaiver1998/p/8605809.html
Problem solving idea: constructs the arr{key:value} object. Place the target-nums[i] difference in the arr{} object and store its position I. Then you can find the corresponding number in the arr{} object each time.
function twosum (nums, target) { var arr = {}; for (var i = 0; i < nums.length; i++) { if (typeof(Arr[nums[i])!== "undefine D ") { return [arr[nums[i]], I]; } -Nums[i]] = i; }}
The sum of two leetcode--js--