(java)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?

思路:本题的题意就是把一个n*n的矩阵,顺时针转90度,先关于主对角线交换,再将列对称交换

比如 

1234
5678
9101112
13141516
先关于对角线交换,变为

15913
261014
371115
481216
再将列对称交换,得到结果

13951
141062
151173
161284
代码如下(已通过leetcode)

public class Solution {
   public void rotate(int[][] matrix) {
    int n=matrix.length;
    int temp;
    for(int i=0;i<n;i++) {
    for(int j=0;j<i;j++) {
    temp=matrix[i][j];
    matrix[i][j]=matrix[j][i];
    matrix[j][i]=temp;
    }
    }
    int start;
    int end;
    for(int i=0;i<n;i++) {
    start=0;
    end=n-1;
    while(start<end) {
    temp=matrix[i][start];
    matrix[i][start]=matrix[i][end];
    matrix[i][end]=temp;
    start++;
    end--;
    }
    }
   }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值