美文网首页
两数之和

两数之和

作者: 路过_720a | 来源:发表于2020-02-25 21:47 被阅读0次

    题目描述:
      给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。
      你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

    解题思路:
    1.暴力法
      遍历所有可能的两数之和, 判断是否满足条件。

    func twoSum(nums []int, target int) []int {
        length := len(nums)
        for i := 0; i < length-1; i++ {
            for j := i + 1; j < length; j++ {
                if target == (nums[i] + nums[j]) {
                    return []int{i, j}
                }
            }
        }
    
        return []int{}
    }
    

    2.哈希表
      存储遍历过的数字和位置的映射关系,以空间换时间

    func twoSum(nums []int, target int) []int {
        tmp := make(map[int]int)
        for i, v := range nums {
            left := target - v
            if j, exist := tmp[left]; exist {
                return []int{j, i}
            }
            tmp[v] = i
        }
        return []int{}
    }
    

    相关文章

      网友评论

          本文标题:两数之和

          本文链接:https://www.haomeiwen.com/subject/ezpqchtx.html