01-leetCode-两数之和

题目:

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

 

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]


 

处理代码

func twoSum(nums []int, target int) []int {
    map1 := make(map[int]int)
    var list []int
    for i,v := range nums {
        val,ok := map1[v]
        if ok {
            list = append(list,val,i)
            return list
        }else{
            map1[target-v] = i
        }
    }
    return []int{}
}

处理逻辑:

  • 算法思路:将目标和值减去一个数的差值存储在字典中
  • 遍历提供的值列表
  • 将索引添加到新的切片中
posted @ 2020-09-06 17:03  弈虫  阅读(41)  评论(0)    收藏  举报