Saturday, January 11, 2025
Google search engine
HomeData Modelling & AIRemove any corner X rows and columns from a matrix

Remove any corner X rows and columns from a matrix

Given an NxN matrix and an integer X. The task is to remove X rows and X columns from the NxN matrix.

  • Remove the first X rows and columns from the matrix.

Examples: 

Input: n = 4, 
       arr[][] = {{20, 2, 10, 16},
                  {20, 17, 11, 6},
                  {14, 16, 1, 3},
                  {10, 2, 17, 4}}, 
       x = 2
Output:
1 3
17 4

Explanation:
Here the value of X is 2.
So remove the first 2 rows 
and the first 2 columns from the matrix. 
Hence the output is
1 3 
17 4

Simple Approach: 

  • Skip the first x rows and columns and print the remaining elements in the matrix.
  • Start from the xth row and print till the n-1th row.
  • Start from the xth column and print till the n-1th column.

Implementation: 

C++




// C++ implementation of the above approach
#include <iostream>
using namespace std;
 
// Function to remove first x
// rows and columns from an array
void remove_X_Rows_and_Columns(int* a, int n, int x)
{
 
    cout << "\nRemoving First " << x
         << " rows and columns:\n";
 
    // Start from the xth row
    // and print till n-1th row
    for (int i = x; i < n; i++) {
 
        // Start from the xth column
        // and print till the n-1th column
        for (int j = x; j < n; j++) {
 
            // Accessing the array using pointers
            cout << *((a + i * n) + j) << " ";
        }
        cout << endl;
    }
}
 
// Print the matrix
void printMatrix(int* a, int n)
{
 
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cout << *((a + i * n) + j) << " ";
        }
        cout << endl;
    }
}
 
int main()
{
    int n = 4;
 
    // get the array inputs
    int a[n][n];
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            a[i][j] = (i * 10 + j);
        }
    }
 
    // Print the matrix
    cout << "Original Matrix:\n";
    printMatrix((int*)a, n);
 
    int x = 2;
 
    // passing the two dimensional
    // array using a single pointer
    remove_X_Rows_and_Columns((int*)a, n, x);
 
    return 0;
}


Java




// Java implementation of the above approach
class GFG{
     
// Function to remove first x
// rows and columns from an array
static void remove_X_Rows_and_Columns(int a[][],
                                      int n, int x)
{
    System.out.print("\nRemoving First " + x +
                     " rows and columns:\n");
 
    // Start from the xth row
    // and print till n-1th row
    for(int i = x; i < n; i++)
    {
         
        // Start from the xth column
        // and print till the n-1th column
        for(int j = x; j < n; j++)
        {
             
            // Accessing the array using pointers
            System.out.print(a[i][j] + " ");
        }
        System.out.println();
    }
}
 
// Print the matrix
static void printMatrix(int a[][], int n)
{
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            System.out.print(a[ i][j] + " ");
        }
        System.out.println();
    }
}
 
// Driver Code
public static void main(String [] args)
{
    int n = 4;
 
    // Get the array inputs
    int a[][] = new int[n][n];
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            a[i][j] = (i * 10 + j);
        }
    }
 
    // Print the matrix
    System.out.println( "Original Matrix:");
    printMatrix(a, n);
 
    int x = 2;
 
    // Passing the two dimensional
    // array using a single pointer
    remove_X_Rows_and_Columns(a, n, x);
}
}
 
// This code is contributed by chitranayal


Python3




# Python3 implementation of the above approach
  
# Function to remove first x
# rows and columns from an array
def remove_X_Rows_and_Columns(a, n, x):
 
    print("Removing First ", x,
          " rows and columns:")
 
    # Start from the xth row
    # and print till n-1th row
    for i in range(x, n):
 
        # Start from the xth column
        # and print till the n-1th column
        for j in range(x, n):
 
            # Accessing the array using pointers
            print(a[i][j], end = " ")
 
        print()
     
# Print the matrix
def printMatrix(a, n):
 
    for i in range(n):
        for j in range(n):
            print(a[i][j], end = " ")
 
        print()
     
# Driver Code
if __name__ == '__main__':
 
    n = 4
 
    # get the array inputs
    a = [[0 for i in range(n)]
            for i in range(n)]
    for i in range(n):
        for j in range(n):
            a[i][j] = (i * 10 + j)
         
    # Print the matrix
    print("Original Matrix:")
    printMatrix(a, n)
 
    x = 2
 
    # passing the two dimensional
    # array using a single pointer
    remove_X_Rows_and_Columns(a, n, x)
 
# This code is contributed by
# Mohit kumar 29


C#




// C# implementation of the above approach
using System;
 
class GFG{
     
// Function to remove first x
// rows and columns from an array
static void remove_X_Rows_and_Columns(int[,] a, 
                                      int n, int x)
{
    Console.WriteLine("\nRemoving First " + x +
                      " rows and columns:\n");
     
    // Start from the xth row
    // and print till n-1th row
    for(int i = x; i < n; i++)
    {
         
        // Start from the xth column
        // and print till the n-1th column
        for(int j = x; j < n; j++)
        {
             
            // Accessing the array using pointers
            Console.Write(a[i, j] + " ");
             
        }
        Console.WriteLine();
    }
}
 
// Print the matrix
static void printMatrix(int[,] a, int n)
{
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            Console.Write(a[i, j] + " ");
        }
        Console.WriteLine();
    }
}
 
// Driver Code
static public void Main()
{
    int n = 4;
     
    // Get the array inputs
    int[,] a = new int[n, n];
     
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            a[i,j] = (i * 10 + j);
        }
    }
     
    // Print the matrix
    Console.WriteLine( "Original Matrix:");
    printMatrix(a, n);
    int x = 2;
     
    // Passing the two dimensional
    // array using a single pointer
    remove_X_Rows_and_Columns(a, n, x);
}
}
 
// This code is contributed by avanitrachhadiya2155


PHP




<?php
// PHP implementation of the above approach
 
// Function to remove first x
// rows and columns from an array
function remove_X_Rows_and_Columns($a, $n, $x)
{
    echo "\nRemoving First ", $x,
         " rows and columns:\n";
 
    // Start from the xth row
    // and print till n-1th row
    for ($i = $x; $i < $n; $i++)
    {
 
        // Start from the xth column
        // and print till the n-1th column
        for ($j = $x; $j < $n; $j++)
        {
 
            // Accessing the array using pointers
            echo $a[$i][$j], " ";
        }
        echo "\n";
    }
}
 
// Print the matrix
function printMatrix($a, $n)
{
 
    for ($i = 0; $i < $n; $i++)
    {
        for ($j = 0; $j < $n; $j++)
        {
            echo $a[$i][$j], " ";
        }
        echo "\n";
    }
}
 
$n = 4;
 
// get the array inputs
$a = array(array());
 
for ($i = 0; $i < $n; $i++)
{
    for ($j = 0; $j < $n; $j++)
    {
        $a[$i][$j] = $i * 10 + $j;
    }
}
 
// Print the matrix
echo "Original Matrix:\n";
printMatrix($a, $n);
 
$x = 2;
 
// passing the two dimensional
// array using a single pointer
remove_X_Rows_and_Columns($a, $n, $x);
 
// This code is contributed by Ryuga
?>


Javascript




<script>
    // javascript implementation of the above approach   
    // Function to remove first x
    // rows and columns from an array
    function remove_X_Rows_and_Columns(a , n , x) {
        document.write("<br/>Removing First " + x + " rows and columns:<br/>");
 
        // Start from the xth row
        // and print till n-1th row
        for (i = x; i < n; i++) {
 
            // Start from the xth column
            // and print till the n-1th column
            for (j = x; j < n; j++) {
 
                // Accessing the array using pointers
                document.write(a[i][j] + " ");
            }
            document.write("<br/>");
        }
    }
 
    // Print the matrix
    function printMatrix(a , n) {
        for (i = 0; i < n; i++) {
            for (j = 0; j < n; j++) {
                document.write(a[i][j] + " ");
            }
            document.write("<br/>");
        }
    }
 
    // Driver Code
     
        var n = 4;
 
        // Get the array inputs
        var a = Array(n);
        for (i = 0; i < n; i++) {
        a[i] = Array(n).fill(0);
            for (j = 0; j < n; j++) {
                a[i][j] = (i * 10 + j);
            }
        }
 
        // Print the matrix
        document.write("Original Matrix:");
        printMatrix(a, n);
 
        var x = 2;
 
        // Passing the two dimensional
        // array using a single pointer
        remove_X_Rows_and_Columns(a, n, x);
 
// This code contributed by gauravrajput1
</script>


Output

Original Matrix:
0 1 2 3 
10 11 12 13 
20 21 22 23 
30 31 32 33 

Removing First 2 rows and columns:
22 23 
32 33 
  • Remove the last X rows and columns from the matrix.

Examples: 

Input: n = 4, 
       arr[][] = {{20, 2, 10, 16},
                  {20, 17, 11, 6},
                  {14, 16, 1, 3},
                  {10, 2, 17, 4}}, 
       x = 2
Output:
20 2
20 17

Explanation:
Here the value of X is 2.
So remove the last 2 rows and 
the last 2 columns from the matrix. 
Hence the output is
20 2
20 17

Simple Approach 

  • Skip the last x rows and columns and print the remaining elements in the matrix.
  • Start from the 0th row and print till the n-xth row.
  • Start from the 0th column and print till the n-xth column.

Implementation: 

C++




#include <iostream>
using namespace std;
 
// Function to remove last x rows
// and columns from an array
void remove_X_Rows_and_Columns(int* a, int n, int x)
{
 
    cout << "\nRemoving Last " << x
         << " rows and columns:\n";
 
    // Start from the 0th row
    // and print till n-xth row
    for (int i = 0; i < n - x; i++) {
 
        // Start from the 0th column
        // and print till the n-xth column
        for (int j = 0; j < n - x; j++) {
 
            // Accessing the array using pointers
            cout << *((a + i * n) + j) << " ";
        }
        cout << endl;
    }
}
 
// Print the matrix
void printMatrix(int* a, int n)
{
 
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cout << *((a + i * n) + j) << " ";
        }
        cout << endl;
    }
}
 
int main()
{
    int n = 4;
 
    // get the array inputs
    int a[n][n];
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            a[i][j] = (i * 10 + j);
        }
    }
 
    // Print the matrix
    cout << "Original Matrix:\n";
    printMatrix((int*)a, n);
 
    int x = 2;
 
    // passing the two dimensional
    // array using a single pointer
    remove_X_Rows_and_Columns((int*)a, n, x);
 
    return 0;
}


Java




import java.io.*;
 
class GFG{
     
public static void remove_X_Rows_and_Columns(
    int[][] a,int n, int x)
{
    System.out.println("\nRemoving Last " + x +
                       " rows and columns:\n");
  
    // Start from the 0th row
    // and print till n-xth row
    for(int i = 0; i < n - x; i++)
    {
         
        // Start from the 0th column
        // and print till the n-xth column
        for(int j = 0; j < n - x; j++)
        {
             
            // Accessing the array using pointers
            System.out.print(a[i][j] + " ");
        }
        System.out.println();
    }       
}
 
// Print the matrix
public static void printMatrix(int[][] a, int n)
{
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            System.out.print(a[i][j] + " ");
        }
        System.out.println();
    }       
}
 
// Driver code
public static void main(String[] args)
{
    int n = 4;
     
    // Get the array inputs
    int[][] a = new int[n][n];
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            a[i][j] = (i * 10 + j);
        }
    }
     
    // Print the matrix
    System.out.println("Original Matrix:");
     
    printMatrix(a, n);
 
    int x = 2;
   
    // Passing the two dimensional
    // array using a single pointer
    remove_X_Rows_and_Columns(a, n, x);
}
}
 
// This code is contributed by patel2127


Python3




# Function to remove last x rows
# and columns from an array
def remove_X_Rows_and_Columns(a, n, x):
    print("\nRemoving Last", x, "rows and columns:")
     
    # Start from the 0th row
    # and print till n-xth row
    for i in range(n - x):
       
        # Start from the 0th column
        # and print till the n-xth column
        for j in range(n - x):
           
            # Accessing the array using pointers
            print(a[i][j], end = " ")
        print()
 
# Print the matrix
def printMatrix(a, n):
    for i in range(n):
        for j in range(n):
            print(a[i][j], end = " ")
        print()
 
n = 4
 
# get the array inputs
a = [[0 for i in range(n)] for j in range(n)]
for i in range(n):
    for j in range(n):
        a[i][j] = (i * 10 + j)
 
# Print the matrix
print("Original Matrix:")
printMatrix(a, n)
x = 2
 
# passing the two dimensional
# array using a single pointer
remove_X_Rows_and_Columns(a, n, x)
 
# This code is contributed by rag2127


C#




using System;
 
public class GFG{
     
    public static void remove_X_Rows_and_Columns(
    int[,] a,int n, int x)
{
    Console.WriteLine("\nRemoving Last " + x +
                       " rows and columns:\n");
   
    // Start from the 0th row
    // and print till n-xth row
    for(int i = 0; i < n - x; i++)
    {
          
        // Start from the 0th column
        // and print till the n-xth column
        for(int j = 0; j < n - x; j++)
        {
              
            // Accessing the array using pointers
            Console.Write(a[i,j] + " ");
        }
        Console.WriteLine();
    }      
}
  
// Print the matrix
public static void printMatrix(int[,] a, int n)
{
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            Console.Write(a[i,j] + " ");
        }
        Console.WriteLine();
    }      
}
  
// Driver code
     
    static public void Main (){
         
        int n = 4;
      
    // Get the array inputs
    int[,] a = new int[n,n];
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            a[i,j] = (i * 10 + j);
        }
    }
      
    // Print the matrix
    Console.WriteLine("Original Matrix:");
      
    printMatrix(a, n);
  
    int x = 2;
    
    // Passing the two dimensional
    // array using a single pointer
    remove_X_Rows_and_Columns(a, n, x);
         
    }
}
 
// This code is contributed by ab2127.


Javascript




<script>
 
// Function to remove last x rows
// and columns from an array
function remove_X_Rows_and_Columns(a, n, x)
{
    document.write("<br>Removing Last"+ x+ "rows and columns:<br>");
     
    // Start from the 0th row
    // and print till n-xth row
    for (let i = 0; i < n - x; i++) {
  
        // Start from the 0th column
        // and print till the n-xth column
        for (let j = 0; j < n - x; j++) {
  
            // Accessing the array using pointers
            document.write(a[i][j]+" ");
        }
        document.write("<br>")
    }
}
 
// Print the matrix
function printMatrix(a,n)
{
    for (let i = 0; i < n; i++) {
        for (let j = 0; j < n; j++) {
            document.write(a[i][j]+" ");
        }
        document.write("<br>")
    }
}
 
let n = 4;
  
    // get the array inputs
    let a = new Array(n);
    for (let i = 0; i < n; i++) {
        a[i]=new Array(n);
        for (let j = 0; j < n; j++) {
            a[i][j] = (i * 10 + j);
        }
    }
  
    // Print the matrix
    document.write("Original Matrix:<br>");
    printMatrix(a, n);
  
    let x = 2;
  
    // passing the two dimensional
    // array using a single pointer
    remove_X_Rows_and_Columns(a, n, x);
 
 
 
// This code is contributed by unknown2108
</script>


Output

Original Matrix:
0 1 2 3 
10 11 12 13 
20 21 22 23 
30 31 32 33 

Removing Last 2 rows and columns:
0 1 
10 11 
  • Remove the first X rows and last X columns from the matrix.

Examples: 

Input: n = 4, 
       arr[][] = {{20, 2, 10, 16},
                  {20, 17, 11, 6},
                  {14, 16, 1, 3},
                  {10, 2, 17, 4}}, 
       x = 2
Output:
14 16
10 2

Explanation:
Here the value of X is 2.
So remove the first 2 rows 
and the last 2 columns from the matrix. 
Hence the output is
14 16
10 2

Simple Approach  

  • Skip the first x rows and last x columns and print the remaining elements in the matrix.
  • Start from the xth row and print till the n-1th row.
  • Start from the 0th column and print till the n-xth column.

Implementation: 

C++




#include <iostream>
using namespace std;
 
// Function to remove first x rows
// and last x columns from an array
void remove_X_Rows_and_Columns(int* a, int n, int x)
{
 
    cout << "\nRemoving First " << x
         << " rows and Last " << x
         << " columns:\n";
 
    // Start from the xth row
    // and print till n-1th row
    for (int i = x; i < n; i++) {
 
        // Start from the 0th column
        // and print till the n-xth column
        for (int j = 0; j < n - x; j++) {
 
            // Accessing the array using pointers
            cout << *((a + i * n) + j) << " ";
        }
        cout << endl;
    }
}
 
// Print the matrix
void printMatrix(int* a, int n)
{
 
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cout << *((a + i * n) + j) << " ";
        }
        cout << endl;
    }
}
 
int main()
{
    int n = 4;
 
    // get the array inputs
    int a[n][n];
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            a[i][j] = (i * 10 + j);
        }
    }
 
    // Print the matrix
    cout << "Original Matrix:\n";
    printMatrix((int*)a, n);
 
    int x = 2;
 
    // passing the two dimensional
    // array using a single pointer
    remove_X_Rows_and_Columns((int*)a, n, x);
 
    return 0;
}


Java




import java.util.*;
 
class GFG{
 
// Function to remove first x rows
// and last x columns from an array
static void remove_X_Rows_and_Columns(int[][] a, int n,
                                      int x)
{
     
    System.out.print("\nRemoving First " + x +
                     " rows and Last " + x +
                     " columns:\n");
 
    // Start from the xth row
    // and print till n-1th row
    for(int i = x; i < n; i++)
    {
         
        // Start from the 0th column
        // and print till the n-xth column
        for(int j = 0; j < n - x; j++)
        {
             
            // Accessing the array using pointers
            System.out.print(a[i][j]+ " ");
        }
        System.out.println();
    }
}
 
// Print the matrix
static void printMatrix(int[][] a, int n)
{
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            System.out.print(a[i][j] + " ");
        }
        System.out.println();
    }
}
 
// Driver code
public static void main(String[] args)
{
    int n = 4;
 
    // Get the array inputs
    int [][]a = new int[n][n];
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            a[i][j] = (i * 10 + j);
        }
    }
 
    // Print the matrix
    System.out.print("Original Matrix:\n");
    printMatrix(a, n);
 
    int x = 2;
 
    // Passing the two dimensional
    // array using a single pointer
    remove_X_Rows_and_Columns(a, n, x);
}
}
 
// This code is contributed by 29AjayKumar


Python3




# Function to remove first x rows
# and last x columns from an array
def remove_X_Rows_and_Columns(a, n, x):
    print("\nRemoving First " , x , " rows and Last " , x , " columns:");
 
    # Start from the xth row
    # and print till n-1th row
    for i in range(x, n):
 
        # Start from the 0th column
        # and print till the n-xth column
        for j in range(n - x):
           
            # Accessing the array using pointers
            print(a[i][j], end = " ");
 
        print();
 
# Print the matrix
def printMatrix(a, n):
    for i in range(n):
        for j in range(n):
            print(a[i][j], end=" ");
 
        print();
 
# Driver code
if __name__ == '__main__':
    n = 4;
 
    # Get the array inputs
    a = [[0 for i in range(n)] for j in range(n)]
    for i in range(n):
        for j in range(n):
            a[i][j] = (i * 10 + j);
 
    # Print the matrix
    print("Original Matrix:");
    printMatrix(a, n);
 
    x = 2;
 
    # Passing the two dimensional
    # array using a single pointer
    remove_X_Rows_and_Columns(a, n, x);
 
# This code is contributed by shikhasingrajput


C#




using System;
 
public class GFG{
 
// Function to remove first x rows
// and last x columns from an array
static void remove_X_Rows_and_Columns(int[,] a, int n,
                                      int x)
{
     
    Console.Write("\nRemoving First " + x +
                     " rows and Last " + x +
                     " columns:\n");
 
    // Start from the xth row
    // and print till n-1th row
    for(int i = x; i < n; i++)
    {
         
        // Start from the 0th column
        // and print till the n-xth column
        for(int j = 0; j < n - x; j++)
        {
             
            // Accessing the array using pointers
            Console.Write(a[i,j]+ " ");
        }
        Console.WriteLine();
    }
}
 
// Print the matrix
static void printMatrix(int[,] a, int n)
{
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            Console.Write(a[i,j] + " ");
        }
        Console.WriteLine();
    }
}
 
// Driver code
public static void Main(String[] args)
{
    int n = 4;
 
    // Get the array inputs
    int [,]a = new int[n,n];
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            a[i,j] = (i * 10 + j);
        }
    }
 
    // Print the matrix
    Console.Write("Original Matrix:\n");
    printMatrix(a, n);
 
    int x = 2;
 
    // Passing the two dimensional
    // array using a single pointer
    remove_X_Rows_and_Columns(a, n, x);
}
}
 
// This code is contributed by 29AjayKumar


Javascript




<script>
// Function to remove first x rows
// and last x columns from an array
function remove_X_Rows_and_Columns(a , n,x)
{
    document.write("<br>Removing First " + x +
                     " rows and Last " + x +
                     " columns:<br>");
 
    // Start from the xth row
    // and print till n-1th row
    for(var i = x; i < n; i++)
    {
         
        // Start from the 0th column
        // and print till the n-xth column
        for(var j = 0; j < n - x; j++)
        {
             
            // Accessing the array using pointers
            document.write(a[i][j]+ " ");
        }
        document.write('<br>');
    }
}
 
// Print the matrix
function printMatrix(a , n)
{
    for(var i = 0; i < n; i++)
    {
        for(var j = 0; j < n; j++)
        {
            document.write(a[i][j] + " ");
        }
        document.write('<br>');
    }
}
 
// Driver code
    var n = 4;
 
    // Get the array inputs
    var a = Array(n).fill(0).map(x => Array(n).fill(0));
    for(var i = 0; i < n; i++)
    {
        for(var j = 0; j < n; j++)
        {
            a[i][j] = (i * 10 + j);
        }
    }
 
    // Print the matrix
    document.write("Original Matrix:<br>");
    printMatrix(a, n);
    var x = 2;
 
    // Passing the two dimensional
    // array using a single pointer
    remove_X_Rows_and_Columns(a, n, x);
 
// This code is contributed by 29AjayKumar
</script>


Output

Original Matrix:
0 1 2 3 
10 11 12 13 
20 21 22 23 
30 31 32 33 

Removing First 2 rows and Last 2 columns:
20 21 
30 31 
  • Remove the last X rows and first x columns from the matrix.

Examples: 

Input: n = 4, 
       arr[][] = {{20, 2, 10, 16},
                  {20, 17, 11, 6},
                  {14, 16, 1, 3},
                  {10, 2, 17, 4}}, 
       x = 2
Output:
10 16
11 6

Explanation:
Here the value of X is 2.
So remove the last 2 rows and
the first 2 columns from the matrix. 
Hence the output is
10 16
11 6

Simple Approach 

  • Skip the last x rows and first x columns and print the remaining elements in the matrix.
  • Start from the 0th row and print till the n-xth row.
  • Start from the xth column and print till the n-1th column.

Implementation: 

C++




#include <iostream>
using namespace std;
 
// Function to remove last x rows
// and first x columns from an array
void remove_X_Rows_and_Columns(int* a, int n, int x)
{
 
    cout << "\nRemoving Last " << x
         << " rows and First " << x
         << " columns:\n";
 
    // Start from the 0th row
    // and print till n-xth row
    for (int i = 0; i < n - x; i++) {
 
        // Start from the xth column and
        // print till the n-1th column
        for (int j = x; j < n; j++) {
 
            // Accessing the array using pointers
            cout << *((a + i * n) + j) << " ";
        }
        cout << endl;
    }
}
 
// Print the matrix
void printMatrix(int* a, int n)
{
 
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cout << *((a + i * n) + j) << " ";
        }
        cout << endl;
    }
}
 
int main()
{
    int n = 4;
 
    // get the array inputs
    int a[n][n];
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            a[i][j] = (i * 10 + j);
        }
    }
 
    // Print the matrix
    cout << "Original Matrix:\n";
    printMatrix((int*)a, n);
 
    int x = 2;
 
    // passing the two dimensional
    // array using a single pointer
    remove_X_Rows_and_Columns((int*)a, n, x);
 
    return 0;
}


Java




import java.util.*;
 
class GFG{
 
  // Function to remove last x rows
  // and first x columns from an array
  static void remove_X_Rows_and_Columns(int[][] a, int n, int x)
  {
 
    System.out.print("\nRemoving Last " +  x
                     + " rows and First " +  x
                     + " columns:\n");
 
    // Start from the 0th row
    // and print till n-xth row
    for (int i = 0; i < n - x; i++) {
 
      // Start from the xth column and
      // print till the n-1th column
      for (int j = x; j < n; j++) {
 
        // Accessing the array using pointers
        System.out.print(a[i][j]+ " ");
      }
      System.out.println();
    }
  }
 
  // Print the matrix
  static void printMatrix(int[][] a, int n)
  {
 
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < n; j++) {
        System.out.print(a[i][j]+ " ");
      }
      System.out.println();
    }
  }
 
  public static void main(String[] args)
  {
    int n = 4;
 
    // get the array inputs
    int [][]a= new int[n][n];
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < n; j++) {
        a[i][j] = (i * 10 + j);
      }
    }
 
    // Print the matrix
    System.out.print("Original Matrix:\n");
    printMatrix(a, n);
 
    int x = 2;
 
    // passing the two dimensional
    // array using a single pointer
    remove_X_Rows_and_Columns(a, n, x);
 
  }
}
 
// This code is contributed by 29AjayKumar


Python3




# Function to remove last x rows
# and first x columns from an array
def remove_X_Rows_and_Columns(a, n, x):
 
    print("\nRemoving Last ", x ,
          " rows and First ", x,
          " columns:")
 
    # Start from the 0th row
    # and print till n-xth row
    for i in range(n - x):
 
        # Start from the xth column and
        # print till the n-1th column
        for j in range(x, n):
 
            # Accessing the array using pointers
            print(a[i][j], end = " ")
             
        print()
 
# Print the matrix
def printMatrix(a, n):
 
    for i in range(n):
        for j in range(n):
            print(a[i][j], end = " ")
             
        print()
 
# Driver code
if __name__ == '__main__':
     
    n = 4
 
    # Get the array inputs
    a = [[0 for i in range(n)]
            for i in range(n)]
             
    for i in range(n):
        for j in range(n):
            a[i][j] = (i * 10 + j)
 
    # Print the matrix
    print("Original Matrix:")
    printMatrix(a, n)
 
    x = 2
 
    # Passing the two dimensional
    # array using a single pointer
    remove_X_Rows_and_Columns(a, n, x)
 
# This code is contributed by mohit kumar 29


C#




using System;
using System.Collections.Generic;
 
public class GFG{
 
  // Function to remove last x rows
  // and first x columns from an array
  static void remove_X_Rows_and_Columns(int[,] a, int n, int x)
  {
 
    Console.Write("\nRemoving Last " +  x
                  + " rows and First " +  x
                  + " columns:\n");
 
    // Start from the 0th row
    // and print till n-xth row
    for (int i = 0; i < n - x; i++) {
 
      // Start from the xth column and
      // print till the n-1th column
      for (int j = x; j < n; j++) {
 
        // Accessing the array using pointers
        Console.Write(a[i,j]+ " ");
      }
      Console.WriteLine();
    }
  }
 
  // Print the matrix
  static void printMatrix(int[,] a, int n)
  {
 
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < n; j++) {
        Console.Write(a[i,j]+ " ");
      }
      Console.WriteLine();
    }
  }
 
  public static void Main(String[] args)
  {
    int n = 4;
 
    // get the array inputs
    int [,]a= new int[n,n];
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < n; j++) {
        a[i,j] = (i * 10 + j);
      }
    }
 
    // Print the matrix
    Console.Write("Original Matrix:\n");
    printMatrix(a, n);
 
    int x = 2;
 
    // passing the two dimensional
    // array using a single pointer
    remove_X_Rows_and_Columns(a, n, x);
  }
}
 
// This code is contributed by shikhasingrajput


Javascript




<script>
 
    // JavaScript implementation of above approach
     
    // Function to remove last x rows
    // and first x columns from an array
    function remove_X_Rows_and_Columns(a, n, x)
    {
 
        document.write("</br>" + "Removing Last " + x
             + " rows and First " + x
             + " columns:" + "</br>");
 
        // Start from the 0th row
        // and print till n-xth row
        for (let i = 0; i < n - x; i++) {
 
            // Start from the xth column and
            // print till the n-1th column
            for (let j = x; j < n; j++) {
 
                // Accessing the array using pointers
                document.write(a[i][j] + " ");
            }
            document.write("</br>");
        }
    }
 
    // Print the matrix
    function printMatrix(a, n)
    {
 
        for (let i = 0; i < n; i++) {
            for (let j = 0; j < n; j++) {
                document.write(a[i][j] + " ");
            }
            document.write("</br>");
        }
    }
     
    let n = 4;
  
    // get the array inputs
    let a = new Array(n);
    for (let i = 0; i < n; i++) {
        a[i] = new Array(n);
        for (let j = 0; j < n; j++) {
            a[i][j] = (i * 10 + j);
        }
    }
  
    // Print the matrix
    document.write("Original Matrix:" + "</br>");
    printMatrix(a, n);
  
    let x = 2;
  
    // passing the two dimensional
    // array using a single pointer
    remove_X_Rows_and_Columns(a, n, x);
 
</script>


Output

Original Matrix:
0 1 2 3 
10 11 12 13 
20 21 22 23 
30 31 32 33 

Removing Last 2 rows and First 2 columns:
2 3 
12 13 

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

RELATED ARTICLES

Most Popular

Recent Comments