两数之和-(哈希)

牛客网: BM50

题目: 数组中两数之和为给定值,返回下标

思路: 遍历数组获取idx与value,value为key, idx为val存入map中,每次遍历时判断target-value是否已在map中有值,值即为先前存入的下标,取出与当前坐标组合为数组返回。

代码:

// 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}

}

你可能感兴趣的:(牛客网,算法刷题,哈希,两数之和)