You are given an n x n 2D matrix representing an image.
Rotate the image by 90 degrees (clockwise).
Follow up:
Could you do this in-place?
class Solution { public: void rotate(vector<vector<int> > &matrix) { if(matrix.size() <= 1) return; int n = matrix.size(); for(int i=0;i<n/2;i++) { for(int j=i;j<n-1-i;j++) { int x=i; int y=j; int val = matrix[x][y]; matrix[x][y] = matrix[-1*y+n-1][x]; matrix[-1*y+n-1][x] = matrix[-1*x+n-1][-1*y+n-1]; matrix[-1*x+n-1][-1*y+n-1] = matrix[y][-1*x+n-1]; matrix[y][-1*x+n-1] = val; } } } };