LeetCode #1 Two Sum
Problem
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
Example:
Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].
Solution
Use a hash map to save all complements of current value and check if current value is a complement of another value.
Complexity
It takes O(n) time for iterating nums
. In each iteration, search and insert operations of hash map take O(1)/O(logn) time in average/worst case. Therefore, it’s time complexity is O(n)/O(nlogn) time in average/worst case.
It’s trivial that space complexity is O(n) for saving all complements into hash map.