首页 > 解决方案 > 如何在多个数字中查找两个数字之间的特定差异

问题描述

我正在尝试确定多个数字列表中两个数字之间的特定差异。例如,如果我有一个列表 1、3、23、66、45、73,我想查找 20 的差异。

标签: difference

解决方案


这是一个算法来查找所有差为 D 的对。

令 N 为数字列表,其中 N[i] 是列表中 i = 1 到 M 的第 i 个数字。

  1. 对 N 进行升序排序。
  2. 跟踪 N 上的两个索引 i 和 j。
  3. 设置 i = 1,j = 1。
  4. 对于每个 i,递增 j 直到 N[i] + D = N[j] 或 j 在 N[i] + D 大于 N[j] 的情况下达到最大值。如果 N[i] + D = N[j] 则找到一对 (N[i] N[j])。继续下一个 i。

推荐阅读