Это проблема комбинаторики. Мы можем разделить массив на максимальную n-1 раз и выходить из него, мы должны выбрать разделы K-1.
ex: arr [] = {1, 2, 3, 4, 5, 6}
k = 3, n = 6.
Тотальная возможностей = (n-1) c (k-1) . /> ожидаемый выход: (3-мерный массив) < /h2>
[
[[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>
ограничения: < /p>
Субарры должны иметь как минимум 1 элемент. < /li>
Субары должны состоять только из последовательных элементов.
для ex: [1, 3], [2, 4], [5, 6]]. /> До сих пор я пробовал рекурсивный метод, но он дает неправильные результаты. Я не могу обернуть голову вокруг, как это исправить. Мне нужен ответ, объясняющий, как правильно подходить к этой проблеме, а интуиция сначала за ней, а затем исправить мой код и указать, где я ошибся. 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
Подробнее здесь: https://stackoverflow.com/questions/752 ... y-k-subarr
Создайте все возможные комбинации множества размеров n, имеющих ровно k subarrays ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Создайте все возможные комбинации множества размеров n, имеющих ровно k subarrays
Anonymous » » в форуме JAVA - 0 Ответы
- 5 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Групповые ряды 2D -массива с помощью столбца и создайте Subarrays с каждой группой [закрыто]
Anonymous » » в форуме Php - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Заполнить 52-канальный массив имен карт из множества костюмов и множества рядов
Anonymous » » в форуме Php - 0 Ответы
- 31 Просмотры
-
Последнее сообщение Anonymous
-