0
点赞
收藏
分享

微信扫一扫

相加等于目标值的两个数

小桥流水2016 2022-03-30 阅读 174
python

题目描述

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

题目保证只有一种答案,但是要求给定数组 nums 中的值不能重复出现。

输入输出格式

输入格式
第一行有一个整型数组;
第二行有一个整数。
输出格式
一行整形数组。

输入输出样例1

输入
[2,7,11,15]
9
输出
[0,1]
解释
输入数组中第一个元素 2 与第二个元素 7 之和等于 9。因此输出 27 的下标 [0,1]

输入输出样例2

输入
[3,2,4]
7
输出
[0,2]
解释
输入数组中第一个元素 3 与第三个元素 4 之和等于 7。因此输出 34 的下标 [0,2]

说明提示

  • 2≤nums.length≤104
  • −109 ≤nums[i]≤109
  • −109 ≤target≤109
  • 只会存在一个有效答案。
    #暴力枚举  
    def twoSum(nums, target):  
        n = len(nums)  
        for i in range(n):  
            for j in range(i + 1, n):  
                if nums[i] + nums[j] == target:  
                    return [i, j]
        return []  
    #哈希表  
    def twoSum(nums, target):  
        hashtable = dict()  
        for i, num in enumerate(nums):  
            if target - num in hashtable:  
                return [hashtable[target - num], i]  
            hashtable[nums[i]] = i  
        return []
    nums = eval(input())  
    target = int(input())  
    print(twoSum(nums, target))   

举报

相关推荐

0 条评论