【问题标题】:Get identical Array from increments to 2 values [closed]从增量到2个值获取相同的数组[关闭]
【发布时间】:2022-01-29 02:06:52
【问题描述】:

我想找到从这样的数组中减去的最小数字

[8, 10, 5]

到这样的数组

[3, 3, 3]

我只能更改两个索引的值(在这种情况下,索引 0 和 1 或索引 1 和 2)。我只被允许减去值并且必须在两个索引上减去相同的值(例如,如果我想减去 5,我必须在两个索引上进行,索引 0 和 1 或索引 2 和 3)。

编辑:澄清 #1:没有“基本价值”。只是通过最少数量的减法值(不是操作,而是减去的值),所有索引都是相同的。

澄清 #2:在任何给定时间,我只能从 2 个索引中减去相同的值,并且只能减去 2

我不知道如何解决这个问题,任何最小的提示和建议将不胜感激。

【问题讨论】:

  • 那么,你尝试了什么?
  • 在任何给定时间,当您执行减法运算时,它必须来自 2 个索引,这是正确的吗?
  • 是否也提到了不能更改索引 0 和索引 2 的值?
  • 不,我可以更改我想要的任何索引的值,只要它限制为两个索引,并且在更改它们时减去相同的值。
  • 时间复杂度是否值得关注?

标签: java arrays algorithm


【解决方案1】:

如果您想让所有值都相同,这意味着您的最低值和最高值应该相等。 例如,在你的数组中

arr[] = {8,5,10}; 

您需要先对其进行排序。

 arr[] = {5,8,10};

现在,您看到最高和最低之间的差是 5, 因此,您从 2 个最大元素中减去 5

 arr[] = {5,3,5};

然后你再次排序

arr[] = {3,5,5};

现在最大和最小 2 之间的差异,因此您从数组中存在的最大 2 个元素中减去它。 你的数组变成了这个

  arr[] = {3,3,3};

这个想法是使最大数字最接近最小数字,如果你从最大数字中减去它们之间的差,就会发生这种情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-28
    • 2022-06-10
    • 2022-01-18
    • 1970-01-01
    • 2013-08-28
    相关资源
    最近更新 更多