Open in App
Not now

# Shift matrix elements row-wise by k

• Difficulty Level : Easy
• Last Updated : 20 Feb, 2023

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