题目描述:
给定一个整数数组 nums
和一个整数目标值 target
,请你在该数组中找出 和为目标值 target
的那 两个 整数,并返回它们的数组下标。
最简单的方式是:
遍历数组,然后用target减去它,得到与它匹配的数pairNum,然后使用nums.indexOf(pairNum)方法判断这个pairNum是否存在
function twoSum(nums,target){
let len = nums.length;
for(let i=0;i <len;i++){
let pairNum = target - nums[i];
if(nums.indexOf(pairNum) !== -1 && nums.indexOf(pairNum)!==i){
return [i,nums.indexOf(pairNum)]
}
}
}
注意点:
if 里面的判断条件:
nums.indexOf(pairNum) !== -1 && nums.indexOf(pairNum)
需要考虑到一种情况:如果pairNum == nums[i],也就是说相加的两个数相同,这时候返回的索引可能就是一样的,这肯定是不对的:
所以我们必须保证pairNum存在并且它不是Nums[i]