vector<vector<int>> rotate(vector<vector<int>>& matrix) {
int n = matrix.size();
vector<vector<int>> copy = matrix;
for (int r = 0; r < n; r++) {
for (int c = 0; c < n; c++) {
matrix[c][n - 1 - r] = copy[r][c];
}
}
return matrix;
}
public int[][] rotate(int[][] matrix) {
int n = matrix.length;
int[][] copy = new int[n][];
for (int r = 0; r < n; r++) copy[r] = matrix[r].clone();
for (int r = 0; r < n; r++) {
for (int c = 0; c < n; c++) {
matrix[c][n - 1 - r] = copy[r][c];
}
}
return matrix;
}
def rotate(matrix):
n = len(matrix)
copy = [row[:] for row in matrix]
for r in range(n):
for c in range(n):
matrix[c][n - 1 - r] = copy[r][c]
return matrix
function rotate(matrix: number[][]): number[][] {
const n = matrix.length;
const copy = matrix.map((row) => [...row]);
for (let r = 0; r < n; r++) {
for (let c = 0; c < n; c++) {
matrix[c][n - 1 - r] = copy[r][c];
}
}
return matrix;
}
vector<vector<int>> rotate(vector<vector<int>>& matrix) {
int n = matrix.size();
for (int r = 0; r < n; r++) {
for (int c = r + 1; c < n; c++) {
int tmp = matrix[r][c];
matrix[r][c] = matrix[c][r];
matrix[c][r] = tmp;
}
}
for (auto& row : matrix) reverse(row.begin(), row.end());
return matrix;
}
public int[][] rotate(int[][] matrix) {
int n = matrix.length;
for (int r = 0; r < n; r++) {
for (int c = r + 1; c < n; c++) {
int tmp = matrix[r][c];
matrix[r][c] = matrix[c][r];
matrix[c][r] = tmp;
}
}
for (int[] row : matrix) {
for (int i = 0, j = n - 1; i < j; i++, j--) { int t = row[i]; row[i] = row[j]; row[j] = t; }
}
return matrix;
}
def rotate(matrix):
n = len(matrix)
for r in range(n):
for c in range(r + 1, n):
tmp = matrix[r][c]
matrix[r][c] = matrix[c][r]
matrix[c][r] = tmp
for row in matrix: row.reverse()
return matrix
function rotate(matrix: number[][]): number[][] {
const n = matrix.length;
for (let r = 0; r < n; r++) {
for (let c = r + 1; c < n; c++) {
const tmp = matrix[r][c];
matrix[r][c] = matrix[c][r];
matrix[c][r] = tmp;
}
}
for (const row of matrix) row.reverse();
return matrix;
}
vector<vector<int>> rotate(vector<vector<int>>& matrix) {
int n = matrix.size();
for (int layer = 0; layer < n / 2; layer++) {
int first = layer, last = n - 1 - layer;
for (int i = first; i < last; i++) {
int offset = i - first;
int top = matrix[first][i];
matrix[first][i] = matrix[last - offset][first];
matrix[last - offset][first] = matrix[last][last - offset];
matrix[last][last - offset] = matrix[i][last];
matrix[i][last] = top;
}
}
return matrix;
}
public int[][] rotate(int[][] matrix) {
int n = matrix.length;
for (int layer = 0; layer < n / 2; layer++) {
int first = layer, last = n - 1 - layer;
for (int i = first; i < last; i++) {
int offset = i - first;
int top = matrix[first][i];
matrix[first][i] = matrix[last - offset][first];
matrix[last - offset][first] = matrix[last][last - offset];
matrix[last][last - offset] = matrix[i][last];
matrix[i][last] = top;
}
}
return matrix;
}
def rotate(matrix):
n = len(matrix)
for layer in range(n // 2):
first, last = layer, n - 1 - layer
for i in range(first, last):
offset = i - first
top = matrix[first][i]
matrix[first][i] = matrix[last - offset][first]
matrix[last - offset][first] = matrix[last][last - offset]
matrix[last][last - offset] = matrix[i][last]
matrix[i][last] = top
return matrix
function rotate(matrix: number[][]): number[][] {
const n = matrix.length;
for (let layer = 0; layer < Math.floor(n / 2); layer++) {
const first = layer, last = n - 1 - layer;
for (let i = first; i < last; i++) {
const offset = i - first;
const top = matrix[first][i];
matrix[first][i] = matrix[last - offset][first];
matrix[last - offset][first] = matrix[last][last - offset];
matrix[last][last - offset] = matrix[i][last];
matrix[i][last] = top;
}
}
return matrix;
}
vector<vector<int>> rotate(vector<vector<int>>& matrix) {
int n = matrix.size();
for (int r = 0; r < (n + 1) / 2; r++) {
for (int c = 0; c < n / 2; c++) {
int tmp = matrix[n - 1 - c][r];
matrix[n - 1 - c][r] = matrix[n - 1 - r][n - 1 - c];
matrix[n - 1 - r][n - 1 - c] = matrix[c][n - 1 - r];
matrix[c][n - 1 - r] = matrix[r][c];
matrix[r][c] = tmp;
}
}
return matrix;
}
public int[][] rotate(int[][] matrix) {
int n = matrix.length;
for (int r = 0; r < (n + 1) / 2; r++) {
for (int c = 0; c < n / 2; c++) {
int tmp = matrix[n - 1 - c][r];
matrix[n - 1 - c][r] = matrix[n - 1 - r][n - 1 - c];
matrix[n - 1 - r][n - 1 - c] = matrix[c][n - 1 - r];
matrix[c][n - 1 - r] = matrix[r][c];
matrix[r][c] = tmp;
}
}
return matrix;
}
def rotate(matrix):
n = len(matrix)
for r in range((n + 1) // 2):
for c in range(n // 2):
tmp = matrix[n - 1 - c][r]
matrix[n - 1 - c][r] = matrix[n - 1 - r][n - 1 - c]
matrix[n - 1 - r][n - 1 - c] = matrix[c][n - 1 - r]
matrix[c][n - 1 - r] = matrix[r][c]
matrix[r][c] = tmp
return matrix
function rotate(matrix: number[][]): number[][] {
const n = matrix.length;
for (let r = 0; r < Math.floor((n + 1) / 2); r++) {
for (let c = 0; c < Math.floor(n / 2); c++) {
const tmp = matrix[n - 1 - c][r];
matrix[n - 1 - c][r] = matrix[n - 1 - r][n - 1 - c];
matrix[n - 1 - r][n - 1 - c] = matrix[c][n - 1 - r];
matrix[c][n - 1 - r] = matrix[r][c];
matrix[r][c] = tmp;
}
}
return matrix;
}