Skip to content

求两数之和 #14

Open
Open

Description

@CodeRookie262

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

示例 1:

输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。

示例 2:

输入:nums = [3,2,4], target = 6
输出:[1,2]

示例 3:

输入:nums = [3,3], target = 6
输出:[0,1]

Activity

  1. CodeRookie262 commented on Jan 5, 2021

    @CodeRookie262
    OwnerAuthor

    暴力破解法(循环嵌套)

    function twoSum(arr, target) {
      for (var i = 0, len = arr.length; i < len; i++) {
        for (var j = i + 1; j < len; j++) {
          if (arr[i] + arr[j] === target) return [i, j];
        }
      }
    }

    哈希表标记

    function twoSum(arr, target) {
      let memo = {};
    
      for (var i = 0; i < arr.length; i++) {
        if (memo[target - arr[i]] === undefined) {
          memo[arr[i]] = i;
        }
        if (memo[target - arr[i]] !== undefined && memo[target - arr[i]] !== i)
          return [memo[target - arr[i]], i];
      }
    }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions