原题记录:https://blog.csdn.net/chamao_/article/details/143365861?fromshare=blogdetail&sharetype=blogdetail&sharerId=143365861&sharerefer=PC&sharesource=chamao_&sharefrom=from_link
C++解法:
class Solution { public: void rotate(vector<vector<int>>& matrix) { int matrixSize = matrix.size(); if (matrixSize == 0) return; // 先进行主对角线翻转 for(int i = 0; i < matrixSize; i++) { for(int j = 0; j < i; j++) { int temp = matrix[i][j]; matrix[i][j] = matrix[j][i]; matrix[j][i] = temp; } } // 再进行左右翻转 for(int i = 0; i < matrixSize; i++) { for(int j = 0; j <matrixSize / 2; j++) { int temp = matrix[i][j]; matrix[i][j] = matrix[i][matrixSize - 1 - j]; matrix[i][matrixSize - 1 - j] = temp; } } } };知识点:
在C++中,可以用matrix.size()来获取行数,matrix[0].size()来获取列数。
但需要注意,如果matrix.size() == 0,不要访问matrix[0],否则会越界。