首页 > 解决方案 > 计算任意2个元素之间绝对差的重复过程后数组的不同可能值的个数

问题描述

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

基本上,您会得到一组元素。您可以取任意 2 个元素并将它们的绝对差值添加回数组。

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

示例 1-

输入 [2,3,4,5]

输出 - 5

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

示例 2-

输入 [1,100]

输出 - 100

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

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

重复该过程后,从 1 到 100 的所有数字都将出现在集合中。

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

因此我的回答是错误的。

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

编辑:将第一个示例的解决方案更正为 5 而不是 6。

标签: algorithmdata-structureshashset

解决方案


推荐阅读