1、兩數之和
給定數組,求數組中兩個數之和的索引
給定一個整數數組 nums 和一個目標值 target,請你在該數組中找出和為目標值的那 兩個 整數,并返回他們的數組下標。
你可以假設每種輸入只會對應一個答案。但是,你不能重復利用這個數組中同樣的元素。
示例
給定 nums = [2, 7, 11, 15], target = 9
因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
解答
package main
import "fmt"
func main() {
nums := []int{2, 7, 11, 15}
target := 9
newArr := towSum(nums, target)
fmt.Println(newArr)
}
func towSum(nums []int,target int) []int {
maps := make(map[int]int,len(nums))
for index , value := range nums {
if _,ok:= maps[target-value];ok{
return []int{maps[target-value],index}
}
maps[value]=index
}
return []int{}
}
思路
首先我們聲明一個map類型,k和v為int類型,接下在我們循環給定的nums數組。通過循環我們我們往map中添加k為nums中的數字,v為數字的索引。我們只需要判斷傳入的target-value(注此處value,是每次遍歷nums數組中的數字)的值是否存在字典中,如果存在,取出相應值得索引即可。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/two-sum

浙公網安備 33010602011771號