Two Sum

题目描述

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].

主要思路: 遍历给定的数组,如果当前遍历到的数字在映射表中存在,那么就找到了符合条件的两个数字,将其在映射表中对应的值取出,与当前索引一起返回即可;如果不存在,那么将当前遍历到的数字与给定目标数字之差添加到映射表中。如果遍历结束函数依旧没有返回,则返回一个空数组。

// golang 版本
func twoSum(nums []int, target int) []int {
    mp := make(map[int]int)
    for i, v := range nums {
        j, ok := mp[v]
        if ok {
            return []int{j, i}
        }
        mp[target-v] = i
    }
    return []int{}
}
# python 版本
class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        mp = {}
        for i, v in enumerate(nums):
            if v in mp:
                return [mp[v], i]
            mp[target-v] = i
        return []
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值