力扣 第一题

都是用hash存储对应的值和键 每次拿当前值找有没有目标值-当前值 为键的hash已经存在了,如果已经存在了,当前的索引和hash的值就是要找到的索引  

否则就把当前的值和索引存入hash


func twoSum(number []int, target int) []int { hash := make(map[int]int) if len(number) <= 0 { return nil } for k,v:= range number { if p,ok := hash[target-v];ok { return []int{p,k} } else { hash[v] = k } } return nil }

  

func twoSum(number []int, target int) []int {
	hash := make(map[int]int)
	for i := 0; i < len(number); i++ {
		var another int = 0
		another = target - number[i] 


		if _, ok := hash[another]; ok {
			fmt.Println(another,i,hash)
			return []int{hash[another], i}
		} else {
			hash[number[i]] = i
		}

	}

	return nil
}

  

原文地址:https://www.cnblogs.com/brady-wang/p/15072084.html