专栏首页前端开发ing数组-两数之和
原创

数组-两数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。

方案一 :双层循环

时间复杂度:O(n^2)

时间复杂度:O(1)

function getTwoNums(nums,target){
    let len = nums.length;
    for(let p1 = 0;p1<len;p1++){
        const findNum = target - nums[p1]
        for(let p2 = p1+1;p2<len;p2++){
            if(p2 === findNum){
                return [p2,p1]
            }
        } 
    }
    return null
}

方案二:利用对象

时间复杂度:O(n)

空间复杂度: O(1)

function getTwoNums(nums,target){
    let len = nums.length,numsMap = {}
    for(let p = 0;p<len;p++){
        const currentNum = numsMap[nums[p]]
        if(currentNum>=0) return [currentNum,p]
        const other = target - nums[p]
        numsMap[other] = p
    }
}

方案三:利用Map对象

时间复杂度: O(n)

空间复杂度:O(1)

    function getTwoNums(nums,target){
        let len = nums.length,numsMap = new Map();
        numsMap.set(nums[0],0)
        for( let p = 1;p<len;p++){
            const other  = target - nums[p]
            if(numsMap.get(other) != undefined) return [numsMap.get(other),p]
            numsMap.set(other,p)
        }
        return null 
    }

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 查找数组中两数之和等于指定的数

    题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

    Melody132
  • [Leetcode][Python/Java]两数之和 Two Sum/两数之和 II - 输入有序数组 Two Sum II

    https://leetcode-cn.com/problems/two-sum/solution/

    蛮三刀酱
  • 两数之和 II - 输入有序数组

    函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。

    _kyle
  • 【LeetCode】 两数之和 II - 输入有序数组

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接和本声明。 ...

    韩旭051
  • LeetCode112|两数之和II-输入有序数组

    给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于...

    码农王同学
  • 167. 两数之和 II - 输入有序数组

    函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。

    村雨遥
  • 167. 两数之和 II - 输入有序数组

    CaesarChang张旭
  • 两数之和

    一份执着✘
  • 两数之和

    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个整数,并返回他们的数组下标。

    木瓜煲鸡脚
  • 两数之和

    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

    _kyle
  • [leetcode数组系列1]两数之和

    我们需要在一个数组nums中寻找两个数,然后呢这个两个数之和需要等于目标的值。ok,我的外层循环从第一个数开始遍历,内层循环从第二个数遍历,如果这两个数和等于目...

    我是程序员小贱
  • 两数之和

    给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。

    用户4456933
  • 两数之和与三数之和

    在数组的左右各有一个指针,向中间遍历。指针指向的两数和为s,则s=nums[i]+nums[j],判断s和target的大小:

    不作声
  • Leetcode No.167 两数之和 II - 输入有序数组

    给定一个已按照 升序排列 的整数数组 numbers ,请你从数组中找出两个数满足相加之和等于目标数 target 。

    week
  • LeetCode之两数之和

    大话swift
  • 【LeetCode】两数之和

    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。

    弗兰克的猫
  • LeetCode - 两数之和

    开启新的一个篇章,LeetCode题解,个人的一些解题思路分享(可能有的题目就是这么菜,之后慢慢更,可以先把自己做完的100多题每天1题的方式先发出来,一遍更一...

    晓痴
  • LeetCode - 两数之和②

    原题地址:https://leetcode-cn.com/problems/two-sum-ii-input-array-is-sorted/

    晓痴
  • 两数之和(TwoSum)

    我工作2年已经感觉到危机感,正准备同时这面临着两个问题了,不如蹭现在还有来得及一起去把算法练起来吧,光看可不行得练。尽可能的把 https://leetcode...

    爱敲代码的猫

扫码关注云+社区

领取腾讯云代金券