Friday, October 17, 2025
HomeLanguagesJavaJava Program to Modify a matrix by rotating ith row exactly i...

Java Program to Modify a matrix by rotating ith row exactly i times in clockwise direction

Given a matrix mat[][] of dimensions M * N, the task is to print the matrix obtained after rotating every ith row of the matrix i times in a clockwise direction.

Examples:

Input: mat[][] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}
Output:
1 2 3
6 4 5
8 9 7
Explanation:
The 0th row is rotated 0 times. Therefore, the 0th row remains the same as {1, 2, 3}.
The 1st row is rotated 1 times. Therefore, the 1st row modifies to {6, 4, 5}.
The 2nd row is rotated 2 times. Therefore, the 2nd row modifies to {8, 9, 7}.
After completing the above operations, the given matrix modifies to {{1, 2, 3}, {6, 4, 5}, {8, 9, 7}}.

Input: mat[][] = {{1, 2, 3, 4}, {4, 5, 6, 7}, {7, 8, 9, 8}, {7, 8, 9, 8}}
Output:
1 2 3 4
7 4 5 6
9 8 7 8
8 9 8 7

Approach: Follow the steps below to solve the problem:

Below is the implementation of the above approach:

Java




// java program for the above approach
import java.io.*;
import java.lang.*;
import java.util.*;
  
class GFG {
  
  // Function to reverse arr[] from start to end
  static void reverse(int arr[], int start, int end)
  {
    while (start < end) {
      int temp = arr[start];
      arr[start] = arr[end];
      arr[end] = temp;
      start++;
      end--;
    }
  }
  
  // Function to rotate every i-th
  // row of the matrix i times
  static void rotateMatrix(int mat[][])
  {
    int i = 0;
  
    // Traverse the matrix row-wise
    for (int rows[] : mat) {
  
      // Reverse the current row
      reverse(rows, 0, rows.length - 1);
  
      // Reverse the first i elements
      reverse(rows, 0, i - 1);
  
      // Reverse the last (N - i) elements
      reverse(rows, i, rows.length - 1);
  
      // Increment count
      i++;
    }
  
    // Print final matrix
    for (int rows[] : mat) {
      for (int cols : rows) {
        System.out.print(cols + " ");
      }
      System.out.println();
    }
  }
  
  // Driver Code
  public static void main(String[] args)
  {
  
    int mat[][] = { { 1, 2, 3 }, 
                   { 4, 5, 6 }, 
                   { 7, 8, 9 } };
  
    rotateMatrix(mat);
  }
}
  
// This code is contributed by Kingash.


Output: 

1 2 3 
6 4 5 
8 9 7

 

Time Complexity: O(N*M), as we are using nested loops to traverse N*M times.

Auxiliary Space: O(1), as we are not using any extra space.

Please refer complete article on Modify a matrix by rotating ith row exactly i times in clockwise direction for more details!

RELATED ARTICLES

Most Popular

Dominic
32361 POSTS0 COMMENTS
Milvus
88 POSTS0 COMMENTS
Nango Kala
6728 POSTS0 COMMENTS
Nicole Veronica
11892 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11954 POSTS0 COMMENTS
Shaida Kate Naidoo
6852 POSTS0 COMMENTS
Ted Musemwa
7113 POSTS0 COMMENTS
Thapelo Manthata
6805 POSTS0 COMMENTS
Umr Jansen
6801 POSTS0 COMMENTS