Leetcode:两数之和

                                     Leetcode:两数之和

题目描述

Leetcode:两数之和_第1张图片

解题思路

思路1:

1)用while循环从后往前遍历;
2)每次遍历先pop最后一个值,再通过indexOf来查找是否有对应的差,pop的好处是为了防止两个数相等;
3)如果有对应的值,索引就是indexOf和数组的长度。

思路2:

1)循环数组;
2)求出目标差值disc;
3)判断disc是否在数组中存在,并且差值disc下标,不能和为相等。

代码

/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */

// 思路1
var twoSum = function(nums, target) {
    let i = nums.length;
    while(i > 1) {
        let last = nums.pop();
        if(nums.indexOf(target-last) >-1) {
            return [nums.indexOf(target-last), nums.length]
        }
        i--;
    }
}

// 思路2
var twoSum = function (nums, target) {
    for(var i=0; i

 

你可能感兴趣的:(编程实战)