Two Sum

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.

Example:

nums = [2, 7, 11, 15]
target = 9

returns

[0, 1]

because nums[0] + nums[1] = 2 + 7 = 9.

UPDATE (2016/2/13): The return format had been changed to zero-based indices. Please read the above updated description carefully.

import scala.collection.mutable.HashMap

def twoSum(nums: Array[Int], target: Int): Array[Int] = {
  val map = new HashMap[Int, Int]
  for ((num, i) <- nums.zipWithIndex) {
    for (j <- map.get(target - num)) {
      return Array(j, i)
    }
    map += (num -> i)
  }
  Array()
}

val nums = Array(13, 2, 7, 11, 15)
val target = 9

twoSum(nums, target)