题目
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,就是给定一个数组和一个目标值,求出和为目标值的两个数组元素的index(不可以重复)。
js实现
/* @param {number[]} nums @param {number} target @return {number[]} */ var twoSum = function(nums, target) { var a = []; for(let i = 0;i<nums.length;i++){ //如果target与某一元素值的差还在数值中并且差的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; };
注意
这一题思路简单,但是循环最好别用js
的forEach
函数,因为该函数在遍历完成之前无法跳出,可能造成在已经求出解后的资源浪费。