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?
1 class Solution { 2 public: 3 void rotate(vector<vector<int>>& matrix) { 4 if (matrix.empty() || matrix[0].empty()) return; 5 6 int n = matrix.size(); 7 // first swap matrix[i][j] with matrix[m - 1 - i][j] 8 for (int i = 0; i < n / 2; i++) { 9 for (int j = 0; j < n; j++) 10 swap(matrix[i][j], matrix[n - 1 - i][j]); 11 } 12 // swap matrix[i][j] with [j][i] 13 for (int i = 0; i < n; i++) { 14 for (int j = 0; j < i; j++) 15 swap(matrix[i][j], matrix[j][i]); 16 } 17 } 18 };