我正在整理一个 java 小程序,以使任务在工作中更快、更高效。
用户定义需要将项目列表拆分成的三个组的大小。列表中的每个项目都有不同的值,具体取决于它被放入三个组中的哪一个。小程序需要显示哪些组合具有最高的总值。
示例:具有列的二维整数数组;项目编号、第 1 组中的值、第 2 组中的值和第 3 组中的值。
16 2 2 5
19 6 0 3
24 1 4 4
25 4 2 3
27 4 2 3
29 3 3 3
31 5 3 1
32 5 2 2
有了这个,用户定义组 1 有 3 个插槽,组 2 有 3 个插槽,组 3 有 2 个插槽。
小程序应不按特定顺序显示以下解决方案
Group 1: 19, 31, 32
Group 2: 24, 27, 29
Group 3: 16, 25
OR
Group 1: 19, 27, 32
Group 2: 24, 29, 31
Group 3: 16, 25
OR
Group 1: 19, 31, 32
Group 2: 24, 25, 29
Group 3: 16, 27
OR
Group 1: 19, 25, 32
Group 2: 24, 29, 31
Group 3: 16, 27
通过所有可能的顺序,我可以管理一种不太有效的方式来运行数组,但它会产生重复的解决方案(即 16,25 和 25,16)。我确信有一种方法可以总结所有可能的组合,而无需重新排列数组。此刻,我实在无法理解它。如果你们中的任何人有这种方法,我将不胜感激。