眼科医院网站建设方案,福建网站建设,网站在线生成app,高端网站案例欣赏给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。示例 1#xff1a;输入#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]]输出#…给定一个 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] 100048. 旋转图像 - 力扣Leetcode思路1. 先将矩阵按照对角线折叠上角元素与左下角元素交换2. 将矩阵左右交换这样的转换原因旋转90度的话那就是需要将行与列转换。然后再想办法转为预期矩阵c:class Solution {
public:void rotate(vectorvectorint matrix) {// 1. 沿着对角线将元素折叠右上角元素与左下角元素交换int n matrix.size();for(int i0; in; i) {for(int ji1; jn; j) {int tmp matrix[i][j];matrix[i][j] matrix[j][i];matrix[j][i] tmp;}}// 2. 将矩阵左右交换for(int i0; in; i) {int left 0;int right n-1;while(left right) {int tmp matrix[i][left];matrix[i][left] matrix[i][right];matrix[i][right] tmp;left;right--;}}}
};