Shift matrix elements row-wise by k

14 Jun, 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 
C++
Java
Python3
C#
PHP
Javascript
// C++ program to shift k elements in a matrix.#include <bits/stdc++.h>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 codeint 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 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 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 codemat = [[1, 2, 3, 4],       [5, 6, 7, 8],       [9, 10, 11, 12],       [13, 14, 15, 16]]k = 2 # Function callshiftMatrixByK(mat, k) # This code is contributed by# Manish Shaw (manishshaw1)
// 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// PHP program to shift k// elements in a matrix. // Function to shift first k// elements of each row of matrix.function shiftMatrixByK($mat, $k){    $N = 4;    if ($k > $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 callshiftMatrixByK($mat, $k); // This code is contributed by// Manish Shaw(manishshaw1)?>
<script>// Java Script program to shift k elements in a// matrix.let N = 4;     // Function to shift first k elements// of each row of matrix.function shiftMatrixByK(mat,k){    if (k > N) {        document.write("Shifting is not possible");        return;    }             let j = 0;    while (j < N) {                     // Print elements from index k        for (let i = k; i < N; i++)            document.write(mat[j][i] + " ");                         // Print elements before index k        for (let i = 0; i < k; i++)            document.write(mat[j][i] + " ");                         document.write("<br>");        j++;    }}     // Driver code         let mat =                [[1, 2, 3, 4],                [5, 6, 7, 8],                [9, 10, 11, 12],                [13, 14, 15, 16]];    let k = 2;             // Function call    shiftMatrixByK(mat, k);          // This code is contributed by sravan kumar G</script>
3 4 1 2 
7 8 5 6 
11 12 9 10 
15 16 13 14
 
Time Complexity: O(n2), 
Auxiliary Space: O(1)
manishshaw1
sravankumar8128
adi1212
Matrix
School Programming
Matrix
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.