Разделить массив на подмассивы размера K, заполнив элементы
Учитывая массив 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)