2021-09-10:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,但是数组中同一个元素在答案里不能重复出现,你可以按任意顺序返回答案。

福大大 答案2021-09-10:

使用map。

时间复杂度:O(N)。

空间复杂度:O(N)。

代码用golang编写。代码如下:

package main import "fmt" func main() { nums := []int{1, 3, 5} target := 6 ret := twoSum(nums, target) fmt.Println(ret) } func twoSum(nums []int, target int) []int { // key 某个之前的数 value 这个数出现的位置 map0 := make(map[int]int) for i := 0; i < len(nums); i { if _, ok := map0[target-nums[i]]; ok { return []int{map0[target-nums[i]], i} } map0[nums[i]] = i } return []int{-1, -1} }

执行结果如下:

数组编程重要知识(给定一个整数数组)(1)

***

[左神java代码](https://github.com/algorithmzuo/coding-for-great-offer/blob/main/src/class27/Problem_0001_TwoSum.java)

,