美文网首页
每周一题 | 两数之和

每周一题 | 两数之和

作者: Eroc | 来源:发表于2020-12-09 10:46 被阅读0次

    问题

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

    示例:

    给定 nums = [2, 7, 11, 15], target = 9
    因为 nums[0] + nums[1] = 2 + 7 = 9
    所以返回 [0, 1]

    相关标签 数组 哈希表

    解题

    解题的关键为,num2=targe-num1 ,且 num2 也要在 list 里面。则需满足以下两个条件。

    • num2 in nums,返回 True
    • nums.index(num2),查找 num2 的索引
    def twoSum(nums, target):
        lens = len(nums)
        j=-1
        for i in range(lens):
            if (target - nums[i]) in nums:
                if (nums.count(target - nums[i]) == 1)&(target - nums[i] == nums[i]):#如果num2=num1,且nums中只出现了一次,说明找到是num1本身。
                    continue
                else:
                    j = nums.index(target - nums[i],i+1) #index(x,i+1)是从num1后的序列后找num2                
                    break
        if j>0:
            return [i,j]
        else:
            return []
    

    参考

    相关文章

      网友评论

          本文标题:每周一题 | 两数之和

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