算法:两数之和1. Two Sum

Posted 架构师易筋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法:两数之和1. Two Sum相关的知识,希望对你有一定的参考价值。

1. Two Sum

Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

You can return the answer in any order.

Example 1:

Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Output: Because nums[0] + nums[1] == 9, we return [0, 1].

Example 2:

Input: nums = [3,2,4], target = 6
Output: [1,2]

Example 3:

Input: nums = [3,3], target = 6
Output: [0,1]

Constraints:

  • 2 <= nums.length <= 104
  • -109 <= nums[i] <= 109
  • -109 <= target <= 109
  • Only one valid answer exists.

Follow-up: Can you come up with an algorithm that is less than O(n2) time complexity?

HashMap 一次遍历解法

class Solution {
    public int[] twoSum(int[] nums, int target) {
        Map<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < nums.length; i++) {
            if (map.containsKey(nums[i])) {
                return new int[]{i, map.get(nums[i])};
            }
            map.put(target - nums[i], i);
        }
        
        return new int[]{};
    }
}

以上是关于算法:两数之和1. Two Sum的主要内容,如果未能解决你的问题,请参考以下文章

1. 两数之和 [leetcode 1: Two Sum]

1. 两数之和 [leetcode 1: Two Sum]

LeetCode 1. Two Sum (两数之和)

LeetCode 力扣1. Two Sum 两数之和 Java 解法

LeetCode 力扣1. Two Sum 两数之和 Java 解法

[Leetcode] two sum 两数之和