黑龙江学校网站建设,网站服务器检测,360下载,建设网站可选择的方案有题目介绍
给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。
你必须在** 原地** 旋转图像#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。
示例 1#xff1a; 输入#xff1a;matrix [[1,2,3],[4,5,6]…题目介绍
给定一个 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]]提示
n matrix.length matrix[i].length1 n 20-1000 matrix[i][j] 1000
解答
class Solution {
public:void rotate(vectorvectorint matrix) {// 先上下交换元素后对角交换int size matrix.size();int i 0, j size - 1;while(i j){vectorint temp matrix[i];matrix[i] matrix[j];matrix[j] temp;i; j--;}// 对角交换for(int i 0; i size; i){for(int j i 1; j size; j){int temp matrix[i][j];matrix[i][j] matrix[j][i];matrix[j][i] temp;}}}
};