当前位置: 面试刷题>> 旋转图像 (经典算法题500道)


### 题目描述补充 题目:**旋转图像** 给定一个 n × n 的二维矩阵 `matrix`,表示一个图像。请你将图像顺时针旋转 90 度。 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。**请不要** 使用另一个矩阵来旋转图像。 **示例 1**: ``` 输入: matrix = [ [1,2,3], [4,5,6], [7,8,9] ] 输出: [ [7,4,1], [8,5,2], [9,6,3] ] ``` **示例 2**: ``` 输入: matrix = [ [5,1,9,11], [2,4,8,10], [13,3,6,7], [15,14,12,16] ] 输出: [ [15,13,2,5], [14,3,4,1], [12,6,8,9], [16,7,10,11] ] ``` ### PHP 示例代码 ```php function rotate(&$matrix) { $n = count($matrix); // 先沿对角线反转矩阵 for ($i = 0; $i < $n; $i++) { for ($j = $i; $j < $n; $j++) { [$matrix[$i][$j], $matrix[$j][$i]] = [$matrix[$j][$i], $matrix[$i][$j]]; } } // 然后反转每一行 for ($i = 0; $i < $n; $i++) { $matrix[$i] = array_reverse($matrix[$i]); } } // 示例用法 $matrix = [ [1,2,3], [4,5,6], [7,8,9] ]; rotate($matrix); print_r($matrix); ``` ### Python 示例代码 ```python def rotate(matrix): n = len(matrix) # 先沿对角线反转矩阵 for i in range(n): for j in range(i, n): matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j] # 然后反转每一行 for row in matrix: row.reverse() # 示例用法 matrix = [ [1,2,3], [4,5,6], [7,8,9] ] rotate(matrix) print(matrix) ``` ### JavaScript 示例代码 ```javascript function rotate(matrix) { const n = matrix.length; // 先沿对角线反转矩阵 for (let i = 0; i < n; i++) { for (let j = i; j < n; j++) { [matrix[i][j], matrix[j][i]] = [matrix[j][i], matrix[i][j]]; } } // 然后反转每一行 for (let i = 0; i < n; i++) { matrix[i].reverse(); } } // 示例用法 const matrix = [ [1,2,3], [4,5,6], [7,8,9] ]; rotate(matrix); console.log(matrix); ``` ### 码小课内容分享 码小课网站提供了丰富的编程学习资源,包括但不限于算法题解、数据结构讲解、前端技术、后端技术等多个领域的课程与实战项目。无论你是编程初学者还是希望进阶提升的技术爱好者,码小课都能为你提供适合的学习内容与资源。快来码小课网站,和我们一起学习,一起进步吧!
推荐面试题