欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

48. 旋转图像

程序员文章站 2022-07-08 15:56:04
...

1.题目

48. 旋转图像48. 旋转图像

2.解法

class Solution {    
public void rotate(int[][] matrix) {        
	int size = matrix.length;
        // 先翻转行和列        
        for (int i = 0; i < size; i++)             
        	for (int j = i; j < size; j++) {                
        		int tmp = matrix[i][j];                
        		matrix[i][j] = matrix[j][i];                
       			 matrix[j][i] = tmp;            }       
         // 再反转行        
         for (int i = 0 ; i < size; i++)             
         	for (int j = 0; j < size / 2; j++) {                
         		int tmp = matrix[i][j];                
	        	matrix[i][j] = matrix[i][size - j - 1];                
	         	matrix[i][size - j - 1] = tmp;            }
                 
}}

第一次循环为N+N-1+…+1 = N(1+N)/2, 第二次循环为N*N/2,
两次综合为O(N^2), 空间复杂度为O(1)

3.思考

计算转置矩阵时,j每次从i开始,行翻转时,j只有size/2

相关标签: Leetcode打卡