LeetCode -- 001.两数之和

8/8/2022 两数之和

#

给定一个整数数组 nums 和一个整数目标值 target;在该数组中找出和为目标值target的那两个整数;返回它们的数组下标;

#

# 思路1:暴力破解

双循环遍历找出两个数。

  • 时间复杂度:O(n²)
  • 空间复杂度:O(1)

# 思路2:空间换时间

定义一个对象,记录数组每一项所需要的目标值。

  • 时间复杂度:O(n)
  • 空间复杂度:O(n)
var twoSum = function (nums, target) {
    var obj = {}
    for (var i = 0; i < nums.length; i++) {
        var num = nums[i]
        var needNum = target - num
        // in运算符用于检测指定的属性是否在指定的对象或其原型链上
        if (num in obj) {
            return [i, obj[num]]
        } else {
            obj[needNum] = i
        }
    }
};
1
2
3
4
5
6
7
8
9
10
11
12
13

# Try

两数之和 (opens new window)
in运算符 (opens new window)

Last Updated: 9/13/2022, 6:15:32 PM