博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Leetcode] Rotate Image 旋转图片
阅读量:7103 次
发布时间:2019-06-28

本文共 906 字,大约阅读时间需要 3 分钟。

Rotate Image

You are given an n x n 2D matrix representing an image.

Rotate the image by 90 degrees (clockwise).

Follow up: Could you do this in-place?

交换法

复杂度

时间 O(NN) 空间 O(1)

思路

为了Inplace实现这题,我们要用交换的方法,顺序是左上先和左下交换,然后左上和右下交换,然后左上和右上交换。和类似,我们通过圈数来控制内外的顺序。

代码

public class Solution {    public void rotate(int[][] matrix) {        // 计算圈数        int n = matrix.length, lvl = n / 2;        for(int i = 0; i < lvl; i++){            for(int j = i; j < n - i - 1; j++){                // 左上和左下交换                swap(matrix, i, j, j, n - i - 1);                // 左上和右下交换                swap(matrix, i, j, n - i - 1, n - j - 1);                // 左上和右上交换                swap(matrix, i, j, n - j - 1, i);            }        }    }        private void swap(int[][] matrix, int i1, int j1, int i2, int j2){        int tmp = matrix[i1][j1];        matrix[i1][j1] = matrix[i2][j2];        matrix[i2][j2] = tmp;    }}

转载地址:http://sbuhl.baihongyu.com/

你可能感兴趣的文章
docker学习系列一:初识docker
查看>>
如何修改ssh的端口号?
查看>>
我的友情链接
查看>>
mysql binlog配置
查看>>
使用正则表达式匹配嵌套Html标签
查看>>
书摘---创业36条军规8:资本的五个问题
查看>>
arduino 配eclipse的博客,有空看下
查看>>
linux下用mail命令发送邮件
查看>>
MongoDB复制集部署和基本管理
查看>>
单链表面试题(二)从头到尾打印单链表
查看>>
strcmp()
查看>>
CET,UTC,GMT,CST几种常见时间概述
查看>>
开源数字媒体资产管理系统:Razuna安装方法
查看>>
洛克菲勒给儿子的38封信(前14封选摘)
查看>>
揭秘双11“某东”背后的架构实战
查看>>
redis高可用之redis sentinel(哨兵)的搭建以及应用
查看>>
spring-boot+spring-session集成
查看>>
vmware挂载磁盘脱机解决方案
查看>>
多点触控实现图面的放大与缩小
查看>>
Android开发小记--开发实用工具类--数据库操作类
查看>>