Условие:
Вам дан двумерный массив размером
m
×
n
m×n с положительными целыми числами. Пройдите по массиву змееобразным способом в направлении, показанном на картинке, пропуская каждую вторую ячейку. Верните массив с посещёнными значениями в порядке обхода. Проходить нужно зигзагом по диагонали.
На картинках розовым выделены клетки, которые необходимо взять в итоговый массив.
Output: [1,7,5,3,9]
Output: [2,2,2,1,1]
Формат входных данных:
В первой строке вводятся два целых числа
m
m и
n
n (
1
≤
𝑚
,
𝑛
≤
100
1≤m,n≤100) — количество строк и столбцов матрицы.
Далее следуют
m
m строк, каждая из которых содержит
n
n целых положительных чисел, разделённых пробелами — элементы матрицы.
Формат выходных данных:
Одномерный массив из посещённых значений.
Sample Input:
1 1
1
Sample Output:
[1]
Решение:
Нам дан прямоугольный массив (матрица) размером m×n. Нужно обойти его змееобразно по диагонали, но способ обхода оказывается не тот, который часто встречается (например, «диагональный обход» из LeetCode), а именно обход выглядит так, что мы идём по столбцам, чередуя направление сверху вниз и снизу вверх. При этом обход производится по всем ячейкам, но в итоговый массив мы добавляем только каждую первую, пропуская вторую, то есть выбираем элементы с индексами 0, 2, 4, … в последовательности обхода. Чтобы понять идею, рассмотрим пример для матрицы 3×3: Предположим, матрица выглядит так: 1 2 ...
