leetcode-1 两数之和

leetcode-1 和为定值的两个数

题目描述:

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

解法一:暴力枚举,会超时

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        r = []
        for i in range(len(nums)):
            for j in range(len(nums)):
                if i==j:
                    continue
                if nums[i]+nums[j]==target:
                    return [i,j]
        return False

解法二:利用python的字典

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        dict = {}
        for i,v in enumerate(nums):
            if target-v in dict.keys():
                return [i,dict[target-v]]
            else:
                dict.setdefault(v,i)
        return []
原文地址:https://www.cnblogs.com/curtisxiao/p/11207892.html