Уменьшите временные затраты на обработку подмассивовJAVA

Программисты JAVA общаются здесь
Ответить
Гость
 Уменьшите временные затраты на обработку подмассивов

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


Для заданного целочисленного массива размера n найти все возможные подмассивы размера k в диапазоне от 1 до n.

Теперь найдите общий элемент, который также является минимальным во всех подмассивах размера k. Если общий элемент не найден, используйте -1 и добавьте его в список результатов.

Например:

Входной массив: [4,3,3,4,2] Результат:

[-1,-1,3,3,2] Объяснение:

k = 1, [4],[3],[3],[4],[2], общего элемента нет, поэтому -1 k = 2, [4,3],[3,3],[3,4],[4,2], общего элемента нет, поэтому -1 k = 3, [4,3,3], [3,3,4], [3,4,2], общий элемент — 3 k = 4, [4,3,3,4],[3,3,4,2], общие элементы — 3 и 4, минимум — 3 k = 5, [4,3,3,4,2], минимальный общий элемент — 2 Это мой наивный код с комментариями:

public static Listsolve(int[] ar) { // Получаем все подмассивы на карте, с ключом в качестве размера подмассива от 1 до n и значением в качестве соответствующего подмассива Map карта = subArrays(ar); int n = map.size(); Результат List = новый ArrayList(); for(int i=0; i
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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