新圩做网站公司,wordpress 4 导航菜单,seo优化论坛,百度手机网址提交给定一个 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]]
使用另一个矩阵
class Solution {
public:void rotate(vectorvectorint matrix) {auto matrix_newmatrix;//矩阵复制int mmatrix.size();for(int i0;im;i){for(int j0;jm;j){matrix_new[j][m-i-1]matrix[i][j];}}matrixmatrix_new;}
};
auto matrix_newmatrix;这行代码的作用是创建了一个名为 matrix_new 的新矩阵并将 matrix 的内容复制到了这个新矩阵中。在 C 中使用 auto 关键字可以让编译器自动推断变量的类型。在这里auto matrix_new 会被推断为 vectorvectorint 类型因为它与 matrix 的类型相同。
matrixmatrix_new; 这行代码的作用是将新复制的矩阵 matrix_new 赋值给原始矩阵 matrix。在创建新矩阵时使用auto自动推导类型这里直接赋值即可完成整体拷贝
对于 vector 或者二维矩阵这样的容器直接使用等号赋值可以实现元素的拷贝。这是因为 C 中的 vector 和二维矩阵都重载了赋值运算符使得在这些容器之间进行赋值操作时会自动拷贝其内容。