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