美文网首页
两数之和

两数之和

作者: 她和她的喵真好看 | 来源:发表于2019-03-17 10:53 被阅读0次
    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
    
    你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
    
    示例:
    
    给定 nums = [2, 7, 11, 15], target = 9
    
    因为 nums[0] + nums[1] = 2 + 7 = 9
    所以返回 [0, 1]
    

    解法一:

    两次循环

    class Solution:
        def twoSum(self, nums: List[int], target: int) -> List[int]:
            numsLen = len(nums)
            answerList = []
            for i in  range(numsLen):
                isFind = False
                for j in range(i+1,numsLen):
                    if j == i:
                        continue
                    if nums[i] + nums[j] == target:
                        answerList.append(i)
                        answerList.append(j)
                        isFind = True
                        break
                if isFind == True:
                    break
            return answerList
    

    解法二:

    利用字典

    class Solution:
        def twoSum(self, nums: List[int], target: int) -> List[int]:
            numsMap = {}
            for index,num in enumerate(nums):
                tmpDiff = target-num
                if tmpDiff in numsMap.keys():
                    return [numsMap[tmpDiff],index]
                numsMap[num] = index
            return None       
    

    相关文章

      网友评论

          本文标题:两数之和

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