給定一個整數數組 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)
}