題目
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].
分析
這是leetcode上的第一題,難度為easy,就是給定一個數(shù)組和一個目標值,求出和為目標值的兩個數(shù)組元素的index(不可以重復)。
js實現(xiàn)
/* @param {number[]} nums @param {number} target @return {number[]} */ var twoSum = function(nums, target) { var a = []; for(let i = 0;i<nums.length;i++){ //如果target與某一元素值的差還在數(shù)值中并且差的index不等于該元素自身的index if(nums.indexOf(target - nums[i])!=-1&&nums.indexOf(target - nums[i])!=i){ a.push(i); a.push(nums.indexOf(target - nums[i])); break; } }; return a; };
注意
這一題思路簡單,但是循環(huán)最好別用js的forEach函數(shù),因為該函數(shù)在遍歷完成之前無法跳出,可能造成在已經(jīng)求出解后的資源浪費。