Algorithm 在任意2个元素之间重复绝对差处理后,计算数组的不同可能值的数量

Algorithm 在任意2个元素之间重复绝对差处理后,计算数组的不同可能值的数量,algorithm,data-structures,hashset,Algorithm,Data Structures,Hashset,这是一个模拟测试中提出的问题。所以,我找不到任何在线评估 基本上,我们为您提供了一个元素数组。您可以获取任意2个元素,并将它们的绝对差值添加回数组 解决方案应该是在无限多个上述给定步骤之后,数组中不同值的数量 示例1- 输入[2,3,4,5] 产出-5 说明:由于3-2=1,可以将其添加到集合中。因此,不同值的总数将为5 示例2- 输入[1100] 产出-100 解释-100-1=99->将其添加回集合 然后,99-1=98->将其添加回集合 重复此过程后,1到100之间的所有数字都将出现在集合

这是一个模拟测试中提出的问题。所以,我找不到任何在线评估

基本上,我们为您提供了一个元素数组。您可以获取任意2个元素,并将它们的绝对差值添加回数组

解决方案应该是在无限多个上述给定步骤之后,数组中不同值的数量

示例1-

输入[2,3,4,5]

产出-5

说明:由于3-2=1,可以将其添加到集合中。因此,不同值的总数将为5

示例2-

输入[1100]

产出-100

解释-100-1=99->将其添加回集合

然后,99-1=98->将其添加回集合

重复此过程后,1到100之间的所有数字都将出现在集合中

我使用一个散列集来存储不同的元素来存储初始数组元素,并使用2 for循环将存储的不同结果减去到同一数组中- 但只有在提交了代码之后,我才意识到,不同的结果应该再次用于进一步的减法

因此,我的回答是错误的

谁能帮我解决这个问题?提前谢谢


编辑:将第一个示例的解改为5而不是6。

1到5之间只有5个元素,为什么答案是6?@Yonlif,你是对的。我的错误。将对其进行编辑。解决方案是
最大值(数组)/gcd(数组)
@。你是对的。谢谢当我仔细思考时,我明白了。有人能解释一下为什么答案是
maximum(array)/gcd(array)