📜  使用python在数组中查找2个数字的总和(1)

📅  最后修改于: 2023-12-03 14:49:50.244000             🧑  作者: Mango

使用 Python 在数组中查找两个数字的总和

在编写 Python 程序时,查找一个数组中两个数字的总和是一项常见任务。本文将介绍一些在 Python 中实现此任务的方法。

首先,我们可以使用暴力方法,遍历数组中的每个数字,并将它与数组中的其他数字相加,以查找是否存在两个数字的和等于给定值。以下是示例代码:

def find_sum(arr, target):
    for i in range(len(arr)):
        for j in range(i+1, len(arr)):
            if arr[i] + arr[j] == target:
                return (i, j)
    return None

# 示例
arr = [1, 3, 5, 7]
target = 8
result = find_sum(arr, target)
if result:
    print(f"数字 {arr[result[0]]} 和 {arr[result[1]]} 的和为 {target}")
else:
    print("没有找到符合要求的数字")

上述代码中的 find_sum 函数接受一个数组和一个目标总和值作为参数,并返回数组中两个数字的索引(如果存在),这两个数字的和等于目标总和。在示例中,数组 [1, 3, 5, 7] 中的数字 35 的和等于 8,因此函数返回 (1, 2)。如果没有找到符合条件的数字,函数将返回 None

另一种更高效的方法是使用哈希表来实现。我们可以遍历数组中的每个数字,并将目标总和值减去该数字,以查找是否存在另一个数字等于该差值。以下是示例代码:

def find_sum(arr, target):
    num_map = {}
    for i, num in enumerate(arr):
        diff = target - num
        if diff in num_map:
            return (num_map[diff], i)
        num_map[num] = i
    return None

# 示例
arr = [1, 3, 5, 7]
target = 8
result = find_sum(arr, target)
if result:
    print(f"数字 {arr[result[0]]} 和 {arr[result[1]]} 的和为 {target}")
else:
    print("没有找到符合要求的数字")

上述代码中的 find_sum 函数接受一个数组和一个目标总和值作为参数,并返回数组中两个数字的索引(如果存在),这两个数字的和等于目标总和。在示例中,数组 [1, 3, 5, 7] 中的数字 35 的和等于 8,因此函数返回 (1, 2)。如果没有找到符合条件的数字,函数将返回 None

无论使用哪种方法,都可以有效地在 Python 中查找数组中的两个数字的总和。如果需要查找数组中的多个数字的总和,则可以使用类似的方法实现。