Leetcode 0001: Two Sum

Title description:

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]

Time complexity: O(n)
loop through the nums array, in each step of the loop we do two things:

  1. Determine whether target−nums[i] is in the hash table, and return the corresponding key and value if it exists.
  2. Insert the new key: nums[i], value: i into the hash table;
class Solution {
    
    
    public int[] twoSum(int[] nums, int target) {
    
    
        Map<Integer, Integer> map = new HashMap<>();
        for(int i = 0; i < nums.length;i++){
    
    
            int y = target - nums[i];
            if(map.containsKey(y)){
    
    
                return new int[]{
    
    map.get(y), i};
            }else{
    
    
                map.put(nums[i], i);
            }
        }
        return null;
    }
}

Guess you like

Origin blog.csdn.net/weixin_43946031/article/details/113778655