leetcode14-1.两数之和

    科技2025-06-14  13

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

    你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

    示例:

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

    解题思路:

    方法一: 暴力解法

    两次遍历

    class Solution(object): def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: 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

    方法二:哈希表

    通过迭代将元素添加到哈希表中,同时我们比较该元素的对应元素是否已经存在与哈希表中,如果存在,我们直接返回答案。

    图解 哈希表

    class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: hashmap = {} for idx, num in enumerate(nums): if target - num in hashmap: return [hashmap[target - num],idx] else: hashmap[num] = idx
    Processed: 0.009, SQL: 8