class Solution {
public:
void rotate(vector<vector<int> > &matrix) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int n = matrix.size();
if (n == 0) return;
for (int i = 0; i < n / 2; i++) {
for (int j = 0; j < n / 2; j++) {
int tmp = matrix[i][j];
matrix[i][j] = matrix[n - 1 - j][i];
matrix[n - 1 - j][i] = matrix[n - 1 - i][n - 1 - j];
matrix[n - 1 - i][n - 1 - j] = matrix[j][n - 1 - i];
matrix[j][n - 1 - i] = tmp;
}
}
if (n % 2) {
for (int i = 0; i < n / 2; i++) {
int tmp = matrix[i][n / 2];
matrix[i][n / 2] = matrix[n / 2][i];
matrix[n / 2][i] = matrix[n - 1 - i][n / 2];
matrix[n - 1 - i][n / 2] = matrix[n / 2][n - 1 - i];
matrix[n / 2][n - 1 - i] = tmp;
}
}
}
};
Small Case: 0ms
Large Case: 24ms
Time: O(n^2)
Space: O(1)