两数之和(简单算法题)

  

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

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

 

示例:

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

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

 

 

golang代码实现:

核心代码逻辑实现:

func twoSum(nums []int, target int) []int {
    m := map[int]int{}
    for i, v := range nums {
        if k, ok := m[target-v]; ok {
            return []int{k, i}
        }
        m[v] = i
    }
    return nil

}

 

整个代码运行:

package main

import "fmt"

func twoSum(nums []int, target int) []int {
    m := map[int]int{}
    for i, v := range nums {
        if k, ok := m[target-v]; ok {
            return []int{k, i}
        }
        m[v] = i
    }
    return nil
}

func main(){
    nums := []int{2,7,11,15}
    target := 9
  a  :=  twoSum(nums,target)
  fmt.Println(a)
    
}

 

posted @ 2020-07-15 01:00  孤独信徒  阅读(94)  评论(0编辑  收藏  举报