g0001_0100.s0001_two_sum.Solution Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java21 Show documentation
Show all versions of leetcode-in-java21 Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
package g0001_0100.s0001_two_sum;
// #Easy #Top_100_Liked_Questions #Top_Interview_Questions #Array #Hash_Table
// #Data_Structure_I_Day_2_Array #Level_1_Day_13_Hashmap #Udemy_Arrays #Big_O_Time_O(n)_Space_O(n)
// #2023_08_09_Time_1_ms_(99.37%)_Space_43.5_MB_(94.36%)
import java.util.HashMap;
import java.util.Map;
/**
* 1 - Two Sum\.
*
* Easy
*
* 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]
*
* **Explanation:** 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?
**/
public class Solution {
public int[] twoSum(int[] numbers, int target) {
Map indexMap = new HashMap<>();
for (int i = 0; i < numbers.length; i++) {
Integer requiredNum = target - numbers[i];
if (indexMap.containsKey(requiredNum)) {
return new int[] {indexMap.get(requiredNum), i};
}
indexMap.put(numbers[i], i);
}
return new int[] {-1, -1};
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy