<分区>
我有不同颜色的球:
- 1个红色,
- 1 个白色,
- 5 个橙子,
- 2 黑色,
- 0 绿色。
我想用 Java 编写一个算法来计算 3 种不同颜色的最大组合数。
例如,在这种情况下,多种解决方案是可能的,但我寻找最大组合数。此示例中有 2 个:
- (1 个红色、1 个橙色、1 个黑色)
- (1 个白色、1 个橙色、1 个黑色)
你能建议我一个解决方案吗? 谢谢!!!
<分区>
我有不同颜色的球:
我想用 Java 编写一个算法来计算 3 种不同颜色的最大组合数。
例如,在这种情况下,多种解决方案是可能的,但我寻找最大组合数。此示例中有 2 个:
你能建议我一个解决方案吗? 谢谢!!!
最佳答案
在每个阶段只需选择您最喜欢的 3 种颜色。
例如,假设您有 2 个红色、3 个绿色、7 个蓝色、1 个黄色和 4 个白色。
您应该先选择蓝色、白色和绿色,因为 7、4 和 3 是最大的数字。
然后你有 2 个红色、2 个绿色、6 个蓝色、1 个黄色和 3 个白色。
6、3、2是最大的数,所以要选蓝、白、红/绿(选红绿都无所谓)。
以这种方式继续下去,直到剩下的颜色少于 3 种,并且您会找到最大值。
该算法有效的正式证明出奇地复杂,可以在here 中找到。 .
关于java - 使用不同项目的不同组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36371655/