【Leetcode】数组-48. 旋转图像
【Leetcode】数组-48. 旋转图像
题目
思路
-
先将矩阵进行转置 然后将矩阵左右两边元素进行交换
代码
class Solution { public void rotate(int[][] matrix) { // 矩阵的转置 沿着对角线交换元素 这里写成 j = i + 1 防止交换回来 for(int i = 0; i < matrix.length; i++){ for(int j = i + 1; j < matrix[0].length; j++) { int t = matrix[i][j]; matrix[i][j] = matrix[j][i]; matrix[j][i] = t; } } // 矩阵左右两边进行互换 行号下标都是不变的 if(matrix[0].length % 2 == 0){ // 矩阵的列数是偶数 for(int ii = 0; ii < matrix.length; ii++){ for(int k = 0; k < matrix[0].length / 2; k++){ // 交换数据 int temp = matrix[ii][k]; matrix[ii][k] = matrix[ii][matrix[0].length - 1 - k]; matrix[ii][matrix[0].length - 1 - k] = temp; } } }else{ // 如果矩阵的列数是奇数 for(int jj = 0; jj < matrix.length;jj++){ for(int kk = 0; kk < matrix[0].length / 2; kk++){ int temp = matrix[jj][kk]; matrix[jj][kk] = matrix[jj][matrix[0].length - 1 - kk]; matrix[jj][matrix[0].length - 1 - kk] = temp; } } } } }
上一篇:
92天倒计时,蓝桥杯省赛备赛攻略来啦~