48. 旋转图像
程序员文章站
2022-07-08 15:56:04
...
1.题目
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
上一篇: 李宏毅机器学习hw3
下一篇: 算法(堆--堆排序)