📌  相关文章
📜  从给定的数组中选择两个元素,以使它们的和不出现在任何数组中(1)

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

在给定数组中选择两个元素,使它们的和不出现在任何数组中

在程序设计中,有时候需要从给定数组中选择两个元素,以使它们的和不出现在任何数组中。这个问题可以通过以下步骤解决:

  1. 首先,将给定的数组从小到大排序。
  2. 然后,从数组中选择最小的两个元素,将它们的和记为s。
  3. 如果s大于等于数组中的下一个元素,则将s加1,并重复第3步,直到s小于下一个元素为止。
  4. 从数组中选择下一个最小的元素,将它的值记为x。
  5. 如果s加上x等于数组中的下一个元素,则将s加1,并重复第5步,直到s加上x小于下一个元素为止。
  6. 重复第5步和第6步,直到找到两个数,它们的和不出现在数组中。

下面是Python示例代码:

def find_pair(arr):
    arr.sort()
    s = arr[0] + arr[1]
    for i in range(2, len(arr)):
        if s >= arr[i]:
            s += 1
        else:
            break
    for i in range(2, len(arr)):
        x = arr[i]
        if s + x >= arr[i+1]:
            s += 1
        else:
            break
    return (arr[0], arr[1], x)

arr = [1, 3, 4, 7, 10]
print(find_pair(arr))

这段代码会输出 (1, 3, 9) ,它们的和是4、7、10中没有出现的。