Matrix Rotation
June 6, 2017
We have a two-part exercise today, based on a Microsoft interview question.
First, write a program to rotate an m × n matrix 90° to the right, as shown below; your solution should touch each matrix element only once:
a b c d e f m j g d a A = g h i rot(A) = n k h e b j k l o l i f c m n o
Second, write a program to rotate a square matrix with n rows and columns in-place. where the source and target matrices are the same matrix and there is no intermediate matrix (be sure your solution works for both even and odd n):
a b c d e u p k f a f g h i j v q l g b B = k l m n o rot(B) = w r m h c p q r s t x s n i d u v w x y y t o j e
Your task is to write the two programs that rotate matrices. When you are finished, you are welcome to read or run a suggested solution, or to post your own solution or discuss the exercise in the comments below.