数组中找出两个和为给定值的数

2020-09-15  本文已影响0人  ES_KYW

// 数组中找出两个和为给定值的数,只需要找一个,时间复杂度O(n)

func get_num(arr []int,target int) []int {
    map_arr := make(map[int]int,0)
    for i := 0; i<len(arr);i++ {
        map_arr[arr[i]] = i
    }
    for i := 0; i<len(arr);i++ {
        res := target - arr[i]
         val,ok := map_arr[res]
        if ok {
            fmt.Println(val)
            return []int{val,i}
        }
    }
    return nil
}
    a := []int{2,3,4,5,6,7,8,1}
    b := get_num(a,11)
    fmt.Printf("%d",b[1])
    return
上一篇 下一篇

猜你喜欢

热点阅读