Skip to content
Related Articles

Related Articles

Delete array element in given index range [L – R]
  • Difficulty Level : Hard
  • Last Updated : 15 Mar, 2019

Given an array A[] and size of array is N. The task is to delete element of array A[] are in given range L to R both are exclusive.

Examples:

Input : N = 12
        A[] = { 3, 5, 3, 4, 9, 3, 1, 6, 3, 11, 12, 3}
        L = 2
        R = 7
Output : 3 5 3 6 3 11 12 3 
since A[2] = 3 but this is exclude 
A[7] =  6 this also exclude 

Input : N = 10
        A[] ={ 5, 8, 11, 15, 26, 14, 19, 17, 10, 14 }
        L = 4
        R = 6
Output :5 8 11 15 26 19 17 10 14 

A naive approach is to delete element in range L to R with extra space.

Below is the implementation of the above approach:

C++




// C++ code to delete element
// in given range
#include <bits/stdc++.h>
using namespace std;
  
// Delete L to R element
vector<int> deleteElement(int A[], int L, int R, int N)
{
    vector<int> B;
  
    for (int i = 0; i < N; i++) 
        if (i <= L || i >= R) 
           B.push_back(A[i]);        
      
    return B;
}
  
// main Driver
int main()
{
    int A[] = { 3, 5, 3, 4, 9, 3, 1, 6, 3, 11, 12, 3 };
    int L = 2, R = 7;
    int n = sizeof(A) / sizeof(A[0]);
    vector<int> res = deleteElement(A, L, R, n);
    for (auto x : res)
        cout << x << " ";
    return 0;
}

Java




import java.util.Vector;
  
// Java code to delete element 
// in given range 
class GFG {
// Delete L to R element 
  
    static Vector<Integer> deleteElement(int A[], int L, int R, int N) {
        Vector<Integer> B = new Vector<>();
  
        for (int i = 0; i < N; i++) {
            if (i <= L || i >= R) {
                B.add(A[i]);
            }
        }
  
        return B;
    }
  
// main Driver 
    public static void main(String[] args) {
        int A[] = {3, 5, 3, 4, 9, 3, 1, 6, 3, 11, 12, 3};
        int L = 2, R = 7;
        int n = A.length;
        Vector<Integer> res = deleteElement(A, L, R, n);
        for (Integer x : res) {
            System.out.print(x + " ");
        }
    }
}
// This code is contributed by PrinciRaj1992

Python3




# Python 3 code to delete element
# in given range
  
# Delete L to R element
def deleteElement(A, L, R, N):
    B = []
  
    for i in range(0, N, 1):
        if (i <= L or i >= R):
            B.append(A[i]) 
      
    return B
  
# Driver Code
if __name__ == '__main__':
    A = [3, 5, 3, 4, 9, 3, 1,
             6, 3, 11, 12, 3
    L = 2
    R = 7
    n = len(A)
    res = deleteElement(A, L, R, n)
    for i in range(len(res)):
        print(res[i], end = " ")
  
# THis code is implemented by
# Surendra_Gangwar

C#




// C# code to delete element 
// in given range 
using System; 
using System.Collections.Generic; 
  
class GFG 
      
    // Delete L to R element 
    static List<int> deleteElement(int []A, 
                        int L, int R, int N) 
    
        List<int> B = new List<int>(); 
        for (int i = 0; i < N; i++)
        
            if (i <= L || i >= R) 
            
                B.Add(A[i]); 
            
        
        return B; 
    
  
    // Driver code
    public static void Main()
    
        int []A = {3, 5, 3, 4, 9, 3, 1, 6, 
                            3, 11, 12, 3}; 
        int L = 2, R = 7; 
        int n = A.Length; 
        List<int> res = deleteElement(A, L, R, n); 
        foreach (int x in res) 
        
            Console.Write(x + " "); 
        
    
}
  
// This code is contributed by Rajput-Ji

PHP




<?php
// PHP code to delete element
// in given range
  
// Delete L to R element
function deleteElement($A, $L, $R, $N)
{
    $B = array();
  
    for ($i = 0; $i < $N; $i++) 
    {
        if ($i <= $L or $i >= $R)
            $B[] = $A[$i];
    }
    return $B;
}
  
// Driver Code
$A = array(3, 5, 3, 4, 9, 3, 1,
              6, 3, 11, 12, 3);
$L = 2;
$R = 7;
$n = count($A);
$res = deleteElement($A, $L, $R, $n);
for ($i = 0; $i < count($res); $i++)
echo "$res[$i] ";
  
// This code is implemented by
// Srathore
?>
Output:



3 5 3 6 3 11 12 3

Time Complexity: O(n)
Auxiliary Space : O(n)

An efficient solution without using extra space.
Below is the implementation of the above approach:

C++




// C++ code to delete element
// in given range
#include <bits/stdc++.h>
using namespace std;
  
// Delete L to R elements
int deleteElement(int A[], int L, int R, int N)
{
    int i, j = 0;
    for (i = 0; i < N; i++) {
        if (i <= L || i >= R) {
            A[j] = A[i];
            j++;
        }
    }
  
    // Return size of Array
    // after delete element
    return j; 
}
  
// main Driver
int main()
{
    int A[] = { 5, 8, 11, 15, 26, 14, 19, 17, 10, 14 };
    int L = 2, R = 7;
    int n = sizeof(A) / sizeof(A[0]);
    int res_size = deleteElement(A, L, R, n);
    for (int i = 0; i < res_size; i++)
        cout << A[i] << " ";
    return 0;
}

Java




// Java code to delete element
// in given range
class GFG 
{
  
// Delete L to R elements
static int deleteElement(int A[], int L, 
                         int R, int N)
{
    int i, j = 0;
    for (i = 0; i < N; i++) 
    {
        if (i <= L || i >= R)
        {
            A[j] = A[i];
            j++;
        }
    }
  
    // Return size of Array
    // after delete element
    return j; 
}
  
// Driver Code
public static void main(String args[])
{
    int A[] = new int[] { 5, 8, 11, 15, 26
                        14, 19, 17, 10, 14 };
    int L = 2, R = 7;
    int n = A.length;
    int res_size = deleteElement(A, L, R, n);
    for (int i = 0; i < res_size; i++)
    System.out.print(A[i] + " ");
}
}
  
// This code is contributed
// by Kirti_Mangal

Python 3




# Python 3 program  to delete element 
# in given range
  
# Function to delete L to R element 
def deleteElement(A, L, R, N) :
  
    j = 0
    for i in range(N) :
        if i <= L or i >= R :
            A[j] = A[i]
            j += 1
  
    # Return size of Array 
    # after delete element 
    return j
      
# Driver Code
if __name__ == "__main__" :
  
    A = [5, 8, 11, 15, 26, 14, 19, 17, 10, 14]
    L, R = 2,7
  
    n = len(A)
    res_size = deleteElement(A, L, R, n)
  
    for i in range(res_size) :
        print(A[i],end = " ")
  
# This code is contributed by ANKITRAI1

C#




// C# code to delete element 
// in given range 
using System;
  
class GFG 
  
// Delete L to R elements 
static int deleteElement(int []A, int L, 
                         int R, int N) 
    int i, j = 0; 
    for (i = 0; i < N; i++) 
    
        if (i <= L || i >= R) 
        
            A[j] = A[i]; 
            j++; 
        
    
  
    // Return size of Array 
    // after delete element 
    return j; 
  
// Driver Code 
public static void Main() 
    int []A = new int[] { 5, 8, 11, 15, 26, 
                         14, 19, 17, 10, 14 }; 
    int L = 2, R = 7; 
    int n = A.Length; 
    int res_size = deleteElement(A, L, R, n); 
    for (int i = 0; i < res_size; i++) 
        Console.Write(A[i] + " "); 
  
// This code is contributed by 29AjayKumar

PHP




<?php
// PHP code to delete element
// in given range
  
// Delete L to R elements
function deleteElement(&$A, $L, $R, $N)
{
    $i= 0;
    $j = 0;
    for ($i = 0; $i < $N; $i++) 
    {
        if ($i <= $L || $i >= $R)
        {
            $A[$j] = $A[$i];
            $j++;
        }
    }
  
    // Return size of Array
    // after delete element
    return $j
}
  
// Driver Code
$A = array(5, 8, 11, 15, 26, 
           14, 19, 17, 10, 14);
$L = 2;
$R = 7;
$n = sizeof($A);
$res_size = deleteElement($A, $L, $R, $n);
for ($i = 0; $i < $res_size; $i++)
{
    echo ($A[$i]);
    echo (" ");
  
// This code is contributed 
// by Shivi_Aggarwal
?>
Output:
5 8 11 17 10 14

Time Complexity: O(n)
Auxiliary Space : O(1)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :