LeetCode题解(Golang实现)--Two Sum

LeetCode题解(Golang实现)--Two Sum,第1张

概述题目 Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, and you may not use the sam 题目

Given an array of integers,return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution,and you may not use the same element twice.

Example:Given nums = [2,7,11,15],target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0,1].
思路

有三种解题思路,但是我只谢了两种
第一种当然是最简单的两次循环暴力破解
第二种是将所有的键存储到一个map中以值为键,在存放前先进行一次计算,假定当前值为x,未知值为y,target-x=y,再从map中尝试获取键为y的值,若能获取到则直接返回x的键及map中y的值

答案 1.
func twoSum(nums []int,target int) []int {    for i:=0;i<len(nums);i++{        for j:=i+1;j<len(nums);j++{            if nums[i]+nums[j] == target {                return []int{i,j}            }        }    }    return nil}//时间复杂度为o(n^2)

2.

func twoSum(nums []int,target int) []int {    maps := map[int]int{}    for index,value := range nums {        member := target - value        if key,ok := maps[member];ok{            return []int{key,index}        }else{            maps[value] = index           }    }    return nil}//时间复杂度为o(n)
总结

以上是内存溢出为你收集整理的LeetCode题解(Golang实现)--Two Sum全部内容,希望文章能够帮你解决LeetCode题解(Golang实现)--Two Sum所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1275529.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存