Generieren Sie alle möglichen Kombinationen einer Reihe von Größe N mit genau K -SubarraysJava

Java-Forum
Anonymous
 Generieren Sie alle möglichen Kombinationen einer Reihe von Größe N mit genau K -Subarrays

Post by Anonymous »

Es ist ein Kombinatorproblem. Wir können das Array auf maximal n-1 und außerhalb des Arrays verteilt, wir müssen K-1-Partitionen wählen. /> Erwartete Ausgabe: (3-dimensionales Array) < /H2>

Code: Select all

[
[[1], [2], [3, 4, 5, 6]],
[[1], [2, 3], [4, 5, 6]],
[[1], [2, 3, 4], [5, 6]],
[[1], [2, 3, 4, 5], [6]],
[[1, 2], [3], [4, 5, 6]],
[[1, 2], [3, 4], [5, 6]],
[[1, 2], [3, 4, 5], [6]],
[[1, 2, 3], [4, 5], [6]],
[[1, 2, 3, 4], [5], [6]],
]
< /code>
Einschränkungen: < /p>

 Subarrays sollten mindestens 1 Element haben. Weit, ich habe eine rekursive Methode ausprobiert, aber sie liefert falsche Ergebnisse. Ich kann meinen Kopf nicht darum wickeln, wie ich es korrigieren kann. Ich brauche eine Antwort, die erklärt, wie ich zuerst dieses [url=viewtopic.php?t=20324]Problem[/url] und die Intuition dahinter angehen soll, und korrigieren Sie dann meinen Code und weisen darauf hin, wo ich falsch gelaufen bin. < /P>
Mein Code: < /p>
 public static void main(String[] args) {
int n = 6;
int k = 3;
int[] arr = new int[]{1,2,3,4,5,6};
ArrayList result = new ArrayList();
ArrayList eachComb = new ArrayList();
ArrayList eachSubArray = new ArrayList();
int index = 0;

generateCombinations(arr, k, index, eachSubArray, eachComb, result);

for (ArrayList each : result) {
for(ArrayList eachh: each) {
System.out.println(eachh);
}
System.out.println("-------------------------------");
}
}

private static void generateCombinations(int[] arr, int k, int index, ArrayList eachSubArray,
ArrayList eachComb, ArrayList result) {

if(k==0 || index==arr.length) {
return;
}

if(!eachSubArray.isEmpty()) {
eachComb.add(new ArrayList(eachSubArray));
}

if(k==1) {
ArrayList last = new ArrayList();
for(int i=index; i

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post