algorithm - 计算任意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。
解决方案
推荐阅读
- docker - 挂载路径会在 Kubernetes 中创建一个新目录
- scala - 来自 spark shell 的 Hive 选择语句
- java - Spring Boot:在构造函数中加载属性文件并用作自动装配注释
- blockchain - 如何仅从保管库查询中获取数据
- javascript - 为什么我需要覆盖prototype.constructor 值?
- php - SQLSTATE [42S02]:未找到基表或视图:1146 表“fresh_start.event”不存在(SQL:从“事件”中选择计数(*)作为聚合)
- javascript - React/Redux,从模型调用方法抛出 TypeError
- ios - 如何在我的 UIPageViewController.swift 中添加另一个页面?
- google-cloud-platform - Swagger 文档位置不存在
- python - 如何在熊猫系列中为 NaN 赋值?