給定一個(gè)整數(shù)數(shù)組 nums 和一個(gè)目標(biāo)值 target船侧,請(qǐng)你在該數(shù)組中找出和為目標(biāo)值的那 兩個(gè) 整數(shù)跃洛,并返回他們的數(shù)組下標(biāo)你画。
你可以假設(shè)每種輸入只會(huì)對(duì)應(yīng)一個(gè)答案。但是豹储,你不能重復(fù)利用這個(gè)數(shù)組中同樣的元素贷盲。
示例:
給定 nums = [2, 7, 11, 15], target = 9
因?yàn)?nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
遍歷兩次的我就不寫(xiě)了,寫(xiě)一下用hash對(duì)應(yīng)值來(lái)求和剥扣,只遍歷一次:
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum =function(nums, target) {
var obj = {},rest,result;
for(var i=0;i<nums.length;i++){
rest = target - nums[i];
if(typeof obj[rest] != 'undefined' ){
return [obj[rest],i]
} else {
obj[nums[i]] = i;
}
}
return []
};
結(jié)果超過(guò)了95%的提交巩剖,說(shuō)名效果很好