码迷,mamicode.com
首页 > Web开发 > 详细

leetcode--js--两数之和

时间:2018-05-08 17:39:06      阅读:852      评论:0      收藏:0      [点我收藏+]

标签:value   --   UNC   对象   .com   解题思路   span   color   logs   

问题描述:

给定一个整数数列,找出其中和为特定值的那两个数。

你可以假设每个输入都只会有一种答案,同样的元素不能被重用。

示例:

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

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

我的答案:

 1 /**
 2  * @param {number[]} nums
 3  * @param {number} target
 4  * @return {number[]}
 5  */
 6 var twoSum = function(nums, target) {
 7              var a=[];
 8             for(var i=0;i<nums.length-1;i++){
 9                 for(var j=i+1;j<nums.length;j++){
10                     if(nums[i]+nums[j]==target){
11                         a.push(i);
12                         a.push(j);
13                     }
14                 }
15             }
16             return a;
17 };

 

优秀答案:

参考 http://www.cnblogs.com/kiznaiver1998/p/8605809.html

解题思路:构造了arr{ key:value} 对象。将target-nums[i] 差值放在arr{ }对象中,并存储其位置i。然后每次就在arr{ }对象中找有没有对应的数即可。

function twoSum(nums, target) {
    var arr = {};
    for (var i = 0; i < nums.length; i++) {
        if (typeof(arr[nums[i]]) !== "undefined"){
            return [arr[nums[i]], i];                        
        }                         
        arr[target - nums[i]] = i;
    }
}

 

leetcode--js--两数之和

标签:value   --   UNC   对象   .com   解题思路   span   color   logs   

原文地址:https://www.cnblogs.com/hiluna/p/8748207.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!