两数之和算法:查找目标值数组下标

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

逻辑结构设计:

  1. 开始
  2. 输入整数数组 'nums' 和目标值 'target'
  3. 初始化一个空字典 'dict'
  4. 遍历整数数组 'nums',对于每个数 'nums[i]',执行以下步骤: a. 计算目标值与当前数的差值 'diff = target - nums[i]' b. 如果 'diff' 在字典 'dict' 中,说明已经找到了另一个数与当前数的和为目标值,返回它们的下标 ('dict[diff]', i) c. 如果 'diff' 不在字典 'dict' 中,则将当前数及其下标 'i' 加入字典 'dict' 中
  5. 如果遍历完整个整数数组 'nums' 后仍未找到符合条件的两个数,则返回空列表 '[]'
  6. 结束

代码示例:

def two_sum(nums, target):
    dict = {}
    for i, num in enumerate(nums):
        diff = target - num
        if diff in dict:
            return [dict[diff], i]
        dict[num] = i
    return []

使用方法:

nums = [2, 7, 11, 15]
target = 9
result = two_sum(nums, target)
print(result)  # 输出: [0, 1]

解释:

代码使用字典 'dict' 来存储每个数及其下标。在遍历数组 'nums' 时,对于每个数 'nums[i]',计算目标值与当前数的差值 'diff'。如果 'diff' 在字典 'dict' 中,说明已经找到了另一个数与当前数的和为目标值,返回它们的下标 ('dict[diff]', i)。否则,将当前数及其下标 'i' 加入字典 'dict' 中。如果遍历完整个数组 'nums' 后仍未找到符合条件的两个数,则返回空列表 '[]'。

注意:

该算法的时间复杂度为 O(n),空间复杂度为 O(n),其中 n 为数组 'nums' 的长度。

两数之和算法:查找目标值数组下标

原文地址: https://www.cveoy.top/t/topic/nLsI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录