网站排名优化培训课程,滨州区建设局网站,中国建设网官方网站证书查询,东莞广告公司电话思路#xff1a;主要是观察变化之后的数组和最开始的数组的区别#xff0c;不难发现#xff0c;先转置在左右镜像对称即可。需要注意的是转置和镜像对称中for变量的终止条件。
class Solution {
public:void rotate(vectorvectorint matrix) {// 行数…思路主要是观察变化之后的数组和最开始的数组的区别不难发现先转置在左右镜像对称即可。需要注意的是转置和镜像对称中for变量的终止条件。
class Solution {
public:void rotate(vectorvectorint matrix) {// 行数int n matrix.size();// 先转置,i j互换即可for(int i 0;i n;i){// 主对角线的元素不需要转置因此这么写就可以for(int j i 1;j n;j){swap(matrix[i][j], matrix[j][i]);}}// 然后竖着中心对称即可for(int i 0;i n;i){for(int j 0;j n / 2;j){// 同一行的变化因此i不需要动// 只需要镜面对称一半即可所以到n/2即可swap(matrix[i][j], matrix[i][n - 1 - j]);}}}
};