ধরা যাক আমরা 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