Given an array of integers, write an efficient algorithm to find the two numbers that add up to a specific target.