Leetcode 1 开篇之作 两数之和

leetcode系列开篇 两数之和

力扣

题目:

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

你可以按任意顺序返回答案。

示例:

题解:

方法一:brute force

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

方法二:dict字典

构建dict,其中key为nums中的数字,value为其index,利用enumerate遍历整个list。检测target-num是否存在于dict中。

def twoSum(self, nums: List[int], target: int) -> List[int]:
        sumdict = dict()
        for i, num in enumerate(nums):
            if target-num in sumdict:
                return [sumdict[target-num],i]
            sumdict[num] = i
        return []

猜你喜欢

转载自blog.csdn.net/weixin_44423625/article/details/121697098