📜  将矩阵元素逐行移动 k

📅  最后修改于: 2022-05-13 01:57:21.514000             🧑  作者: Mango

将矩阵元素逐行移动 k

给定一个方阵mat[][]和一个数字k 。任务是将每行的前 k 个元素移动到矩阵的右侧。

例子 :

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++
// 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


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