牛客网: BM50
题目: 数组中两数之和为给定值,返回下标
思路: 遍历数组获取idx与value,value为key, idx为val存入map中,每次遍历时判断target-value是否已在map中有值,值即为先前存入的下标,取出与当前坐标组合为数组返回。
代码:
Go
// go
package main
// import "fmt"
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param numbers int整型一维数组
* @param target int整型
* @return int整型一维数组
*/
func twoSum( numbers []int , target int ) []int {
// write code here
dict := make(map[int]int)
for idx, v := range numbers {
if i, ok := dict[target-v]; ok {
return []int{i + 1, idx + 1}
} else {
dict[v] = idx
}
}
return []int{-1, -1}
}