func twoSum(nums []int, target int) []int {
// Optimal solution: using a hashtable
m := make(map[int]int)
for i, num := range nums {
if j, ok := m[target-num]; ok {
return []int{i, j}
}
m[num] = i
return []int{}