Тема: Обхід двовимірної матриці відносно побічної діагоналі
Потрібно зібрати всі елементи, які знаходяться на побічній діагоналі квадратної матриці та менших паралельних до неї діагоналях.
Тобто, якщо матриця була:
std::vector<std::vector<char>> tablet {
{ 'P', 'A', 'R', 'T' },
{ 'A', 'G', 'A', 'R' },
{ 'R', 'A', 'G', 'A' },
{ 'T', 'R', 'A', 'M' }
};
То вивід має бути: T, RR, AAA, PGGM, AAA, RR, T.
Для головної діагоналі зробив ось так:
for (int i = 0; i < 2 * row_size - 1; ++i) {
std::string diag_line { "" };
int start_col = (i < row_size) ? 0 : i - row_size + 1;
for (int j = start_col; j <= i - start_col; ++j) {
diag_line += tablet.at(j).at(i - j);
}
}
Розумію, що стовпці треба зменшувати, але застряг на формулі початкового стовпця.