leetcode - 两数之和 - golang

223 阅读1分钟

Insight:再简单也可能出错

func twoSum(nums []int, target int) []int {
    var result []int
    tmp := make(map[int]int, 0)
    for index, num := range nums {
        if i, exist := tmp[num]; exist {
            return []int{i, index}
        } else {
            tmp[target-num] = index
        }
    }
    return result
}
  • 时间复杂度:O(n)

  • 空间复杂度:O(n)

  • 犯过的错:

    • tmp[target-num]写成tmp[num]
    • return result 写成 return