让我们说你有一组数字。您需要消除数字,直到只剩下一个。这很难解释,所以让我给你一个例子。
数字分别为3,6,9和10.
你将3与9配对。你消除3.(注意:其中任何一个都可以消除)。现在剩下6,9和10。你将6与9配对。你消除9.现在剩下6和10。你将6与10对(唯一选项)。
问题是:我想找到从这种消除中获得的最大值。每次消除一个数字时,这两个数字的XOR值就会加到计数中。在前面的例子中,总值将是(3 ^ 6)+(6 ^ 9)+(6 ^ 10)= 10 + 15 + 12 = 37.这恰好是可以从任何消除中获得的最大值组合
如何使用2000号码解决Java中的这个问题?我知道我可以使用蛮力找到所有可能的组合,但是运行时间超过两秒,我更喜欢我的解决方案不到两秒钟。唯一的选择是动态编程。
有谁知道如何使用动态编程解决这个问题?