Поворот изображения

Опубликовано Sep 30, 2011 в Массивы и строки | 4 коммент.

, , ,

Поворот изображения

Предположим, некоторая система хранит квадратные картинки в виде двумерных массивов n*n с элементами размером в 4 байта. Необходимо разработать метод rotate поворота изображения на 90 градусов. Попробуйте реализовать алгоритм, которому не требуется выделение дополнительной памяти.

void rotate(int** matrix, const int n)
{
 //ваш код
}
1 Цель задания быстрая проверка простых навыков алгоритмического мышления
2 Время выполнения 10 минут
3 Формат выполнения код пишется на листике, без доступа к документации

Критерии оценки FulcrumWeb:

Кандидат должен продемонстрировать умение реализовывать элементарные алгоритмы и заботу об эффективности реализации. В приведенной сигнатуре метода содержится подсказка, что 4 байта – это как раз тип данных int в 32-разрядной ОС.

Ожидаемые вопросы:

  1. Поворачивать по часовой стрелке или против?

Оценка результатов:

Вопрос можно не задавать, а какой-то из двух вариантов выбрать по своему усмотрению, так как от ответа на него суть алгоритма не меняется. От начинающих программистов ожидается, как минимум, реализация с выделением дополнительной памяти.

 

Программисты с опытом должны найти оптимальное решение.