【发布时间】:2020-03-30 00:49:24
【问题描述】:
给定一个整数数组,我需要通过重复用它们的差替换任意两个数字来将其减少为一个数字,以产生最大可能的结果。
Example1 - 如果我有 [0,-1,-1,-1] 数组然后执行 (0-(-1)) 然后 (1-(-1)) 然后 (2-(-1) ) 将给出 3 作为最大可能输出
Example2- [3,2,1,1] 我们可以得到最大输出 5 { first (1-1) then (0-2) then (3-(-2)}
谁能告诉我如何解决这个问题?
【问题讨论】:
-
我不明白你描述的指令或算法。 “我有一个数组,我们需要通过从中减去任何 2 个数字来将其减少为一个数字,最终结果应该是最大值”不清楚,示例似乎没有使用相同的算法来获得 3 的结果.
-
@JanChristophTerasa 我还有几个例子:
[14, 8, -4, -5]然后(-5) - (8) = (-13)所以[14, -4, -13]然后(14) - (-13) = 27所以[27, -4]相差31。这与可能的最小值相反最终值,即(-5) - (14) = (-19)所以[8, -4, -19]然后(8) - (-4) = (12)所以[12, -19]相差-31。其他可能的最终值包括 15(用于从左到右相减)、-23(用于从右到左相减)、( 8 - (-4) ) - ( (-5) - 14 ) = 7等。 -
谢谢,我现在明白了。
-
在第二个示例中,我得到的最大结果为 5:
1-1 = 0然后0-2 = -2然后3-(-2) = 5。我是不是误会了什么? -
是的,你是正确的。对不起,这是我的错