Посчитать горные массивыJAVA

Программисты JAVA общаются здесь
Гость
Посчитать горные массивы

Сообщение Гость »


Горный массив имеет следующие особенности:
[*]все элементы в массиве разные [*]Размер массива равен A, что нечетно. [*]элементы от 1 до A/2 увеличиваются. [*]оставшиеся элементы справа уменьшаются [*]элемент в позиции (A/2 +1) является максимальным
Для заданного размера массива A и диапазона чисел от [1, B] включительно подсчитайте, сколько возможных горных массивов.

Подсчитайте все возможные различные горные массивы для данных A и B.

Например:

A = 3, B = 4 Возможные массивы: 8

1 3 2 2 3 1 1 4 3 3 4 1 2 4 3 3 4 2 1 4 2 2 4 1 У нас есть 8 возможных горных массивов. поэтому результат 8. Моя идея состоит в том, чтобы сгенерировать все возможные массивы размера A, используя цифры от 1 до B, и определить, является ли это горным массивом или нет. Но мой подход требует много времени. Каков правильный подход к решению этой проблемы?

Это мой код для генерации всех возможных перестановок:

импортировать java.util.ArrayList; импортировать java.util.List;

публичный класс Main { public static void kSubsetPermutations(String частично, List set, int k) { for (int element: set) { если (к == 1) { System.out.println(частичный + элемент); } еще { List copyOfSet = новый ArrayList(set); copyOfSet.remove(Integer.valueOf(элемент)); kSubsetPermutations (частичный + элемент, copyOfSet, k - 1); } } } public static voidsolve(int A, int B) { List list = new ArrayList(); for(int i=1; i

Вернуться в «JAVA»