Open In App

Remove any corner X rows and columns from a matrix

Improve
Improve
Like Article
Like
Save
Share
Report

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 


Last Updated : 15 Sep, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads