📅  最后修改于: 2023-12-03 14:50:46.969000             🧑  作者: Mango
ISRO(国际空间研究组织)是印度的全国级空间研究组织,负责开展和支持印度的航天项目、卫星通信和空间研究。ISRO CS 2014 是该组织的一个计算机科学相关的招聘考试,在该考试中有一道涉及数组操作的问题。
给定一个整数数组 nums,和一个目标值 target,请你在数组中找出两个数字,它们相加之和等于目标值 target,并返回这两个数字的索引。
def two_sum(nums: List[int], target: int) -> List[int]:
pass
nums
:一个整数数组,其中 2 <= len(nums) <= 10^4,-10^9 <= nums[i] <= 10^9target
:一个整数,其中 -10^9 <= target <= 10^9assert two_sum([2, 7, 11, 15], 9) == [0, 1]
assert two_sum([3, 2, 4], 6) == [1, 2]
assert two_sum([3, 3], 6) == [0, 1]
问题提供了来自不同输入的示例,你可以使用这些示例来测试你的解决方案的正确性。
这是一个经典的数组操作问题,可以通过使用哈希表来加快查找速度。可以使用一个哈希表来存储每个数字及其索引,然后对于每个数字,查看是否存在与目标值的差值在哈希表中,若存在,则找到了答案。
table
。nums
。num
,计算 diff = target - num
。diff
在哈希表中,则已找到答案,返回其索引和当前数字的索引。diff
不在哈希表中,则将当前数字及其索引添加到哈希表中。以下是一个可能的实现,根据以上思路使用 Python 编程语言编写的示例代码:
from typing import List
def two_sum(nums: List[int], target: int) -> List[int]:
table = {}
for i, num in enumerate(nums):
diff = target - num
if diff in table:
return [table[diff], i]
else:
table[num] = i
return []
题目代码片段遵循 Markdown 语法,可供程序员进行阅读、理解和实践。