Java
 Computer >> コンピューター >  >> プログラミング >> Java

行列を反時計回りに90度回転させるプログラムをJavaで作成します


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.

この問題を解決するためのアプローチ

最初のアイデアは、指定された行列の転置を見つけてから、行方向にトラバースしながら行列の各要素を交換することです。

  • 正方行列を入力します。

  • 行列の転置を見つけます。

  • インデックス0の要素をインデックスn-1と交換します。

  • 出力を返します。

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

  1. バイナリ挿入ソート用のJavaプログラム

    バイナリ挿入ソートは、バイナリ検索を使用して、反復ごとに特定のインデックスに要素を挿入するための適切な位置を見つけます。まず、要素を挿入する必要がある場所を見つけます。次に、要素は次の正しい位置に移動されます。これで、特定の要素がその位置に配置されます。 以下は、バイナリ挿入ソートのJavaコードです- 例 public class Demo{    void Cocktail_Sort(int my_arr[]){       boolean swapped = true;       int start =

  2. Pythonで正方行列を反時計回りに90度回転するプログラム

    正方行列があるとすると、反時計回りに90度回転する必要があります。 1 4 7 2 5 8 3 6 9 その場合、出力は次のようになります 7 8 9 4 5 6 1 2 3 これを解決するには、次の手順に従います- 行列が空の場合、 空白のリストを返す n:=行列の行数 行列の各行について、次のようにします 行を逆にする 0からn-1の範囲のiの場合、実行 0からi-1の範囲のjについては、次のようにします matrix