0
点赞
收藏
分享

微信扫一扫

Java数组:二维矩阵旋转90度

RockYoungTalk 2022-02-15 阅读 167
算法
package way;

public class 矩阵旋转 {

	public static void main(String[] args) {
		//给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。
        //	请你设计一种算法,将图像旋转 90 度。
		int[][] matrix= {
				{1,2,3},
				{4,5,6},
				{7,8,9}};
		//初始二维数组-读取数组
		for (int i = 0; i < matrix.length; i++) {
			for (int j = 0; j < matrix.length; j++) {
				  System.out.print(matrix[i][j]+" ");
			}
			System.out.println(" ");
		}
        //根据要求执行
		//1.根据二维数组的行列元素得到相应的规律(可以先用2*2的矩阵推导,如果2*2的矩阵能够适用这个 
         公式,可能说明这个公式适用于绝大多数的矩阵)
        //1.1很明显,这个数组旋转90度时 
        /*[0,0]-->[0,1]
          [0,1]-->[1,1]
          [1,0]-->[0,0]
          [1,1]-->[1,0]
          原先的[i,j]位数据-->[j,len-i]
        */
        //2.创建一个新的二维数组,将旋转后的数组元素添加
		int len = matrix.length;
		int l = len-1;
		int [][]newmatrix=new int[len][len];
		
		for (int i = 0; i < len; i++) {
			for (int j = 0; j < len; j++) {
				newmatrix[j][l-i]=matrix[i][j];		
			}
		}
		for (int i = 0; i < matrix.length; i++) {
			for (int j = 0; j < matrix.length; j++) {
				matrix[i][j]=newmatrix[i][j];
				System.out.print(matrix[i][j]+" ");
			}
			System.out.println(" ");
		}
	}
	}

 可以先用2*2的矩阵推导,如果2*2的矩阵能够适用这个 公式,可能说明这个公式适用于绝大多数的矩阵

举报

相关推荐

0 条评论