leetcode-Easy-第1天-two sum

博客围绕从整数数组中找出两数之和等于特定目标值的问题展开。要求找出这两个数在数组中的索引,且每个输入有唯一解,同一元素不能使用两次,还给出了示例。

题目:

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.

从数组中找出A+B=C,返回A和B在数组中的位置,数组中一定存在A和B相加等于C,并且A和B不能相等

  • Example:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].
复制代码
  • 解法
var twoSum = function(array, target) {
    const len = array.length;
    // 因为肯定有解,且值不一样,所以数组只有两个值的时候这两个值就为解
    if (len === 2) return [0, 1]; 
    let obj = {};
    for(let i = 0; i < len; i++) {
        let value = target - array[i]; 
      //value in obj判断obj对象是否有一个key为value
        if(value in obj ) return [obj[value], i]; 
        //obj对象的key是原来数组的值,value是该值的位置
        else obj[arrays[i]] = i; 
    }
};

其实思路就是:
array = [6,9,10,12],target = 15
obj = {6:0, 9:1, 10:2, 12:3}
15 = 6 + 9 = array[0] + obj[9]
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值