美文网首页
2021-10-25 1.两数之和【Easy】

2021-10-25 1.两数之和【Easy】

作者: JackHCC | 来源:发表于2021-10-25 23:54 被阅读0次

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。

示例 1:

输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。

示例 2:

输入:nums = [3,2,4], target = 6
输出:[1,2]

示例 3:

输入:nums = [3,3], target = 6
输出:[0,1]

提示:

2 <= nums.length <= 104
-109 <= nums[i] <= 109
-109 <= target <= 109

只会存在一个有效答案
进阶:你可以想出一个时间复杂度小于 O(n2) 的算法吗?

方法一:

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        diff = {}
        for key, value in enumerate(nums):
            if diff.get(value, None) == None:
                diff[target-value] = key
            else:
                return [diff[value], key]

方法二:

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        num_index = list(zip(nums, range(len(nums))))
        num_index.sort()
        left = 0
        right = len(num_index) - 1
        while left < right:
            cur_sum = num_index[left][0] + num_index[right][0]
            if cur_sum == target:
                return [num_index[left][1], num_index[right][1]]
            elif cur_sum < target:
                left += 1
            else:
                right -= 1

相关文章

  • 2021-10-25 1.两数之和【Easy】

    给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整...

  • Leetcode数组easy | 1.两数之和

    (一)两数之和 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同...

  • 1. 两数之和 Easy 96.09% + 63.79%

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

  • *【数组】1. Two Sum 两数之和 Easy

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

  • 1. 两数之和

    https://leetcode-cn.com/problems/two-sum/description/给定一个...

  • 1. 两数之和

    内容 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素...

  • 1. 两数之和

    20180919-摘抄自1. 两数之和 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每...

  • 1. 两数之和

    1、暴力法,求target-num[current]是否满足 2、哈希表

  • 1. 两数之和

    代码 分析 主要是利用map集合来存储值,存储的是下一下要找的值和当前的索引,然后找到的时候就可以知道这两个索引

  • 1. 两数之和

    一、题目原型: 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同...

网友评论

      本文标题:2021-10-25 1.两数之和【Easy】

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