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.
We use insert_or_assign because in the event we have a double solution (i,e [3,3] target 6)
The hashmap will store/assign the latest encountered element's index in the event an element was already
hashed with an index earlier in the loop , which would be the duplicate "furthest" into the array,
In our computation step, since we linear scan the nums array, for a problem where the solution is duplicate elements,
generally, we would encounter the first duplicate in the scan, and we would retrieve the 2nd duplicate from the hash map saving some compute cycles because the necessary duplicate would be "farther" in the array.