黑马程序员技术交流社区

标题: 一道笔试题怎么做 [打印本页]

作者: 自信boy    时间: 2016-8-19 21:53
标题: 一道笔试题怎么做
有一副由NxN矩阵表示的图像,这里每个像素用一个int表示,请编写一个算法,将图像顺时针旋转90度。
给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于500,图像元素小于等于256。
测试样例:
[[1,2,3],[4,5,6],[7,8,9]],3
返回:[[7,4,1],[8,5,2],[9,6,3]]
作者: 马蚁牙黑    时间: 2016-8-19 23:28
我想回答可惜还没有学到....等我会了再告诉你
作者: JunC    时间: 2016-8-20 01:07
题目理解有一点困难,思考了半天题目想要我们来怎么构造程序,
其实算法不是很难,细心一点都OK
[Java] 纯文本查看 复制代码
import java.util.*;  
  
public class Transform {  
    public int[][] transformImage(int[][] mat, int n) {  
        if(mat==null){  
            return null;  
        }  
        int temp=0;  
        for(int i=0;i<n;i++){  
            for(int j=0;j<n-i-1;j++){  
                temp=mat[j];  
                mat[j]=mat[n-j-1][n-i-1];  
                mat[n-j-1][n-i-1]=temp;  
            }  
        }  
        for(int i=0;i<n/2;++i){  
            for(int j=0;j<n;++j){  
                temp=mat[j];  
                mat[j]=mat[n-i-1][j];  
                mat[n-i-1][j]=temp;  
            }  
        }  
        return mat;  
    }  
}  





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2