用Java编写程序以将矩阵沿逆时针方向旋转90度

假设我们给出了一个N×N的方阵。任务是逆时针旋转矩阵。例如,

输入1 -

N = 3

matrix[ ][ ] = [

   [1 2 3],

   [4 5 6],

   [7 8 9]

]

输出-

3 6 9 2 5 8 1 4 7

说明:逆时针旋转矩阵后,将生成3 6 9 2 5 8 1 4 7的输出。

解决这个问题的方法

最初的想法是找到给定矩阵的转置,然后在逐行遍历的同时交换矩阵的每个元素。

  • 以方矩阵的输入为准。

  • 找到矩阵的转置。

  • 用索引n-1交换索引0处的元素。

  • 返回输出。

示例

import java.io.*;

class Solution {

   static void rotateMatrix(

      int n, int matrix[][]){

         for (int i = 0; i < n; i++) {

            for (int j = i; j < n; j++) {

               int temp= matrix[i][j];

               matrix[i][j]= matrix[j][i];

               matrix[j][i]= temp;

            }

         }

   for(int i=0;i<n;i++){

      int top=0;

      int bottom = n-1;

      while(top<bottom){

         int temp = matrix[top][i];

         matrix[top][i]=matrix[bottom][i];

         matrix[bottom][i] = temp;

         top++;

         bottom--;

      }

   }

}

static void displayMatrix(int N, int mat[][]){

   for (int i = 0; i < N; i++) {

      for (int j = 0; j < N; j++)

         System.out.print(" " + mat[i][j]);

         System.out.print("\n");

      }

      System.out.print("\n");

   }

   public static void main(String[] args){

      int N = 3;

      int mat[][] = {

         {1,2,3},

         {4,5,6},

         {7,8,9}

      };

      rotateMatrix(N, mat);

      displayMatrix(N, mat);

   }

}

输出结果

运行上面的代码将生成如下输出:

3 6 9 2 5 8 1 4 7

以上是 用Java编写程序以将矩阵沿逆时针方向旋转90度 的全部内容, 来源链接: utcz.com/z/351280.html

回到顶部