资讯专栏INFORMATION COLUMN

[Leetcode] Rotate Image 旋转图片

Brenner / 2034人阅读

摘要:交换法复杂度时间空间思路为了实现这题,我们要用交换的方法,顺序是左上先和左下交换,然后左上和右下交换,然后左上和右上交换。和类似,我们通过圈数来控制内外的顺序。代码计算圈数左上和左下交换左上和右下交换左上和右上交换

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实现这题,我们要用交换的方法,顺序是左上先和左下交换,然后左上和右下交换,然后左上和右上交换。和Spiral Matrix类似,我们通过圈数来控制内外的顺序。

代码
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;
    }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/64644.html

相关文章

  • leetcode48 Rotate Image 90度旋转数组

    摘要:每一次的旋转,其实都是正方形上的四个元素之间的相互替换。所以本质上我们只需遍历每种长度正方形上的一条边,就可以完成这个正方形的旋转。最后实现整个数组矩阵的旋转代表正方形的起始位置,即,,即,代表当前正方形上的一条边上的一个点。 题目要求 You are given an n x n 2D matrix representing an image. Rotate the image b...

    melody_lql 评论0 收藏0
  • leetcode 48 Rotate Image

    摘要:题目详情这道题目要求我们对一个正方形矩阵进行顺时针度的翻转。并且要求不声明额外的空间,不能新建二维数组。输入数组旋转后的输入数组想法这道题因为要求在位。所以我们需要找到一种解法,使得每次操作都是交换两个元素的位置,最后实现整个矩阵的旋转。 题目详情 You are given an n x n 2D matrix representing an image.Rotate the ima...

    kgbook 评论0 收藏0
  • 解决移动端iOS下上传图片旋转问题。

    摘要:下上传图片被旋转解决方法用既然是解决问题,那就简单说一下,直接上代码方式使用在上可以直接调用照相机拍照,竖拍出来的图片都会变成横图思路获取到照片拍摄的方向角,对非横拍的照片使用的进行角度旋转修正。 iOS下html上传图片被旋转 解决方法用exif.js+canvas既然是解决问题,那就简单说一下,直接上代码! html方式使用在iOS上可以直接调用照相机拍照,竖拍出来的图片都会变成横...

    zhunjiee 评论0 收藏0

发表评论

0条评论

Brenner

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<