Разделить массив на подмассивы размера K, заполнив элементы

Опубликовано: 20 Сентября, 2022

Учитывая массив nums[ ] размера N , задача состоит в том, чтобы разбить массив на группы размера K , используя следующую процедуру:

  • Первая группа состоит из первых K элементов массива, вторая группа состоит из следующих K элементов массива и так далее. Каждый элемент может быть частью ровно одной группы.
  • Для последней группы, если в массиве не осталось K элементов, используйте 0 для завершения группы.

Примеры:

Input: nums[ ] = {1,2,3,4,5,6,7,8}, K = 4
Output: [[1, 2, 3, 4] [ 5, 6, 7, 8]]
Explanation:
The first 4 element [1, 2, 3, 4] form the first group.
The next 4 elements [ 5, 6, 7, 8] form the second group.
Since all groups can be completely filled by element from the array, no need to use 0.

Input: nums[ ] = {3,2,5,7,9,1,3,5,7}, K = 2
Output: [[3, 2] ,[5, 7], [9,1], [3, 5], [7, 0]]
Explanation: The last group was one short of being of size 2. So, one 0 is used.

Подход: Это простая проблема, связанная с реализацией. Выполните шаги, указанные ниже, чтобы решить проблему:

  • Поддерживайте временный вектор, который представляет каждую группу в строке.
  • Если индекс i+1 делится на K , то можно сделать вывод, что группа закончилась с этим i -м индексом.
  • Вставьте temp в вектор ответа , если группа заканчивается.
  • Проверьте, имеет ли последняя группа размер K или нет.
  • Если он не равен, добавьте заливку размером K – (len+1) с 0.

Ниже приведена реализация вышеуказанного подхода:


Сложность времени: НА)
Вспомогательное пространство: O(N)

РЕКОМЕНДУЕМЫЕ СТАТЬИ