📌  相关文章
📜  教资会网络 | UGC NET CS 2018 年 12 月 – II |问题2(1)

📅  最后修改于: 2023-12-03 15:10:16.280000             🧑  作者: Mango

介绍教资会网络的 UGC NET CS 2018 年 12 月 – II 考试问题2

教资会网络的 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]。

解题思路

该问题可以通过使用哈希表来解决。具体步骤如下:

  1. 创建一个哈希表,用于存储数组中每个元素及其下标的信息。
  2. 遍历数组中的每个元素,计算目标值与当前元素的差,然后在哈希表中找到该差值对应的下标,即可得出答案。
  3. 如果当前元素不在哈希表中,则将其添加到哈希表中。
代码实现
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]