问题类似于here , 除了:
我的尝试:
我想在上面的链接中使用与 RomCoo 相同的想法,但将其调整为这个问题:
如果不是:取第一个和,否则取第二个。
我相信步骤 (2) 和 (3) 上的对是唯一可以得出最大和的对,但我无法正式证明这一点。
如果这是正确的,你如何正式证明它?
如果没有,你如何解决它?
最佳答案
假设我们有两个数字 A
和 B
构成更大的总和。要么A
或 B
(或两者)不得与最大数直接相邻,否则它们将落入(3)。让我们把它当作 A
,不失一般性。自 A
不与我们最大的数相邻,则B
如果还没有,可以安全地替换为我们最大的数字,从而导致更大的总和。因此,要达到最大值,B
必须等于我们最大的数字。同理,如果存在大于 A
的值不与我们最大的数相邻,那么这个和也不会是最大的,所以 A
必须是第二大数字。这意味着 A
和 B
将落入(2)。因此,(2)和(3)是我们唯一有效的解决方案。
关于arrays - 在数组中找到两个总和最大的非后续元素 - 面试问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62122007/