# Shift matrix elements row-wise by k

• Difficulty Level : Easy
• Last Updated : 14 Sep, 2022

Given a square matrix mat[][] and a number k. The task is to shift the first k elements of each row to the right of the matrix.

Examples :

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

Input : mat[N][N] = {{1, 2, 3, 4}
{5, 6, 7, 8}
{9, 10, 11, 12}
{13, 14, 15, 16}}
k = 2
Output :mat[N][N] = {{3, 4, 1, 2}
{7, 8, 5, 6}
{11, 12, 9, 10}
{15, 16, 13, 14}}
Note: Matrix should be a square matrix

Implementation:

## C++

 // C++ program to shift k elements in a matrix. #include using namespace std; #define N 4   // Function to shift first k elements of // each row of matrix. void shiftMatrixByK(int mat[N][N], int k) {     if (k > N) {         cout << "shifting is not possible" << endl;         return;     }           int j = 0;     while (j < N) {                   // Print elements from index k         for (int i = k; i < N; i++)             cout << mat[j][i] << " ";                       // Print elements before index k         for (int i = 0; i < k; i++)             cout << mat[j][i] << " ";                       cout << endl;         j++;     } }   // Driver code int main() {     int mat[N][N] = {{1, 2, 3, 4},                      {5, 6, 7, 8},                      {9, 10, 11, 12},                      {13, 14, 15, 16}};     int k = 2;           // Function call     shiftMatrixByK(mat, k);           return 0; }

## Java

 // Java program to shift k elements in a // matrix. import java.io.*; import java.util.*;   public class GFG {            static int N = 4;            // Function to shift first k elements     // of each row of matrix.     static void shiftMatrixByK(int [][]mat,                                     int k)     {         if (k > N) {             System.out.print("Shifting is"                         + " not possible");             return;         }                    int j = 0;         while (j < N) {                            // Print elements from index k             for (int i = k; i < N; i++)                 System.out.print(mat[j][i] + " ");                                // Print elements before index k             for (int i = 0; i < k; i++)                 System.out.print(mat[j][i] + " ");                                System.out.println();             j++;         }     }            // Driver code     public static void main(String args[])     {         int [][]mat = new int [][]                     { {1, 2, 3, 4},                       {5, 6, 7, 8},                       {9, 10, 11, 12},                       {13, 14, 15, 16} };         int k = 2;                    // Function call         shiftMatrixByK(mat, k);     } }    // This code is contributed by Manish Shaw // (manishshaw1)

## Python3

 # Python3 program to shift k # elements in a matrix.   N = 4 # Function to shift first k # elements of each row of # matrix. def shiftMatrixByK(mat, k):     if (k > N) :         print ("shifting is"             " not possible")         return           j = 0     while (j < N) :                   # Print elements from         # index k         for i in range(k, N):             print ("{} " .             format(mat[j][i]), end="")                       # Print elements before         # index k         for i in range(0, k):             print ("{} " .             format(mat[j][i]), end="")                       print ("")         j = j + 1   # Driver code mat = [[1, 2, 3, 4],        [5, 6, 7, 8],        [9, 10, 11, 12],        [13, 14, 15, 16]] k = 2   # Function call shiftMatrixByK(mat, k)   # This code is contributed by # Manish Shaw (manishshaw1)

## C#

 // C# program to shift k elements in a // matrix. using System;   class GFG {           static int N = 4;           // Function to shift first k elements     // of each row of matrix.     static void shiftMatrixByK(int [,]mat,                                     int k)     {         if (k > N) {             Console.WriteLine("shifting is"                         + " not possible");             return;         }                   int j = 0;         while (j < N) {                           // Print elements from index k             for (int i = k; i < N; i++)                 Console.Write(mat[j,i] + " ");                               // Print elements before index k             for (int i = 0; i < k; i++)                 Console.Write(mat[j,i] + " ");                               Console.WriteLine();             j++;         }     }           // Driver code     public static void Main()     {         int [,]mat = new int [,]                     { {1, 2, 3, 4},                       {5, 6, 7, 8},                       {9, 10, 11, 12},                       {13, 14, 15, 16} };         int k = 2;                   // Function call         shiftMatrixByK(mat, k);     } }   // This code is contributed by Manish Shaw // (manishshaw1)

## PHP

 \$N)     {         echo ("shifting is not possible\n");         return;     }           \$j = 0;     while (\$j < \$N)     {                   // Print elements from index k         for (\$i = \$k; \$i < \$N; \$i++)             echo (\$mat[\$j][\$i]." ");                       // Print elements before index k         for (\$i = 0; \$i < \$k; \$i++)             echo (\$mat[\$j][\$i]." ");                       echo ("\n");         \$j++;     } }   // Driver code \$mat = array(array(1, 2, 3, 4),              array(5, 6, 7, 8),              array(9, 10, 11, 12),              array(13, 14, 15, 16)); \$k = 2;       // Function call shiftMatrixByK(\$mat, \$k);   // This code is contributed by // Manish Shaw(manishshaw1) ?>

## Javascript



Output

3 4 1 2
7 8 5 6
11 12 9 10
15 16 13 14

Complexity Analysis:

• Time Complexity: O(n2),
• Auxiliary Space: O(1)

My Personal Notes arrow_drop_up
Related Articles