📅  最后修改于: 2023-12-03 15:10:16.280000             🧑  作者: Mango
教资会网络的 UGC NET CS 2018 年 12 月 – II 考试问题2 是一道针对计算机科学领域的题目,要求考生通过编写代码来解决给定的问题。
题目描述如下:
给定一个整数数组 nums 和一个目标值 target,找出数组中和为目标值的两个数。
你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
示例:
标准输入:
nums = [2, 7, 11, 15]
target = 9
标准输出:
[0, 1]
解释:因为 nums[0] + nums[1] = 2 + 7 = 9,所以返回 [0, 1]。
该问题可以通过使用哈希表来解决。具体步骤如下:
def two_sum(nums, target):
"""
给定一个整数数组 nums 和一个目标值 target,
找出数组中和为目标值的两个数。
:param nums: 整数数组
:param target: 目标值
:return: 两个数的下标
"""
# 创建一个哈希表,用于存储每个元素及其下标的信息
num_map = {}
for i, num in enumerate(nums):
# 计算目标值与当前元素的差
diff = target - num
# 在哈希表中查找差值对应的下标
if diff in num_map:
return [num_map[diff], i]
# 将当前元素添加到哈希表中
num_map[num] = i
# 如果没找到符合条件的元素,则返回空列表
return []
# 测试示例
assert two_sum([2, 7, 11, 15], 9) == [0, 1]