LeetCode-两数之和

题目:

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

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

示例:

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

分析

  • 方法一:首先取出nums中的第一个数,然后依次取出后面的所有数,相加,若和为target,则返回index,然后取第二个数,循环下去。代码如下
class Solution(object):
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        print(len(nums))
        fanhui=[]
        length=len(nums)
        for i in range(length):
            a=nums[i]
            for j in range(i+1,length):
                b=nums[j]
                # print(b)
                if a+b==target:
                    fanhui.append(i)
                    fanhui.append(j)
                    
        return fanhui
  • 方法二:用字典的方法,python里的字典相当于hash表,代码如下
class Solution(object):
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        hashmap={}
        for i,num in enumerate(nums):
            if num in hashmap:
                return[hashmap[num],i]
            else:
                hashmap[target-num]=i
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 两数之和 题目叙述: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两...
    一萍之春阅读 421评论 0 3
  • Leetcode有几道相关的两数之和类的题目,在这里将题目总结如下。 1.#1 Two Sum 两数之和 1.1 ...
    _Free_Lance_阅读 541评论 0 0
  • 题目一(hash): 给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整...
    胖大_ad99阅读 235评论 0 0
  • leetcode 两数之和 思路 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目...
    unique_a311阅读 190评论 0 1
  • 碧湖垂柳,孤星伴月。 尘烟渐起,不觉朦胧一湾愁。 弹指百年,岁月流转,往事亦随之搁浅。 风吹柳岸,拨动长发扬起惆怅...
    水如清阅读 484评论 1 2