数组编程重要知识(给定一个整数数组)
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}
}
执行结果如下:
***
[左神java代码](https://github.com/algorithmzuo/coding-for-great-offer/blob/main/src/class27/Problem_0001_TwoSum.java)
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com