leetcoed Rotate Image

来源:互联网 发布:软件项目管理招聘 编辑:程序博客网 时间:2024/05/03 00:44

题目链接

思路:
找规律,旋转的规律就是i,j的下一个点是j,n-i。其中n行数减一。
这样进行4次转一圈旋转了一个像素。。
再观察出需要用哪些像素做起始点然后开始旋转。。

 public class Solution {    int [][]matrix;    int n;    public void rotate(int[][] matrix) {        this.matrix=matrix;        n=matrix.length-1;         for(int i=0;i<=n/2;i++)         {             for(int j=i;j<n-i;j++)             {                 swap(i, j);             }         }    }    public void swap(int i,int j)    {        int src=matrix[i][j];        int temp;        int nexti;        int nextj;        for(int k=0;k<4;k++)        {            nexti=j;            nextj=n-i;            temp=matrix[nexti][nextj];            matrix[nexti][nextj]=src;            src=temp;            i=nexti;            j=nextj;        }    }}
0 0
原创粉丝点击