// 数组中找出两个和为给定值的数,只需要找一个,时间复杂度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
网友评论