leecode刷题----两数之和(一)

1. 题目表述

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。
示例 1:
输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。

2. 暴力法

class Solution(object):
    def twoSum(self, nums, target):
        result=[]
        for i in range(len(nums)):
            diff=target-nums[i]
            if diff in nums:
                for j in range(len(nums)):
                    if diff==nums[j] and i!=j:
                     result.append(i)
                     result.append(j)
                     return result

leecode刷题----两数之和(一)_第1张图片

3. 哈希表

class Solution(object):
    def twoSum(self, nums, target):
        result=[]
        map={
     }
        for i in range(len(nums)): ## 创建hashmap的映射关系
            map[nums[i]]=i
        for j in range (len(nums)): 
            diff =target-nums[j]  
            if (diff in map and map[diff]!=j):
                result.append(j)
                result.append(map[diff])
                return result

leecode刷题----两数之和(一)_第2张图片

你可能感兴趣的:(Leecode刷题)