EN
Java - get all possible combinations of 2D array (each sub-array can have different size)
5 points
Quick solution:
xxxxxxxxxx
1
public class CombinationsUtil {
2
3
public static void printCombinations(int[][] mx, int position, String result) {
4
if (position == mx.length) {
5
System.out.println(result.substring(2));
6
return;
7
}
8
for (int i = 0; i < mx[position].length; i++) {
9
String newResult = result + ", " + mx[position][i];
10
printCombinations(mx, position + 1, newResult);
11
}
12
}
13
14
public static void main(String[] args) {
15
int[][] mx = {
16
{10, 20},
17
{30, 40, 50}
18
};
19
printCombinations(mx, 0, "");
20
}
21
}
Result:
xxxxxxxxxx
1
10, 30
2
10, 40
3
10, 50
4
20, 30
5
20, 40
6
20, 50
Example 2
xxxxxxxxxx
1
public class CombinationsUtilTest2 {
2
3
public static void main(String[] args) {
4
int[][] mx = {
5
{10, 20, 30},
6
{40, 50},
7
{70, 80, 90}
8
};
9
CombinationsUtil.printCombinations(mx, 0, "");
10
}
11
}
Result:
xxxxxxxxxx
1
10, 40, 70
2
10, 40, 80
3
10, 40, 90
4
10, 50, 70
5
10, 50, 80
6
10, 50, 90
7
20, 40, 70
8
20, 40, 80
9
20, 40, 90
10
20, 50, 70
11
20, 50, 80
12
20, 50, 90
13
30, 40, 70
14
30, 40, 80
15
30, 40, 90
16
30, 50, 70
17
30, 50, 80
18
30, 50, 90