Open In App

Delete array element in given index range [L – R]

Improve
Improve
Like Article
Like
Save
Share
Report

Given an array A[] and the size of an array is N. The task is to delete elements of array A[] that are in the 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 elements in the 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 <stdio.h>
#include <stdlib.h>
 
// Delete L to R element
void deleteElement(int A[], int L, int R, int N,int *size,int *B)
{
      int index=0;
 
    for (int i = 0; i < N; i++)
        if (i <= L || i >= R)
           B[index++]=A[i];       
     
      *size=index;
}
 
// 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]);
     
    int B[n-abs(L-R)];
    int size=0;
     
    deleteElement(A, L, R, n,&size,B);
     
      for(int i=0;i<size;i++)
        printf("%d ",B[i]);
     
  return 0;
}


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
?>


Javascript




<script>
    // Javascript code to delete element in given range
     
    function deleteElement(A, L, R, N) {
        let B = [];
  
        for (let i = 0; i < N; i++) {
            if (i <= L || i >= R) {
                B.push(A[i]);
            }
        }
  
        return B;
    }
     
    let A = [3, 5, 3, 4, 9, 3, 1, 6, 3, 11, 12, 3];
    let L = 2, R = 7;
    let n = A.length;
    let res = deleteElement(A, L, R, n);
    for(let i = 0; i < res.length; i++)
      document.write(res[i] + " ");
 
// This code is contributed by divyeshrabadiya07.
</script>


Output

3 5 3 6 3 11 12 3 

Complexity Analysis:

  • 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 <stdio.h>
 
// 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;
}
 
// Driver Code
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++)
        printf("%d ", A[i]);
    return 0;
}


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
?>


Javascript




<script>
 
    // JavaScript code to delete element in given range
     
    // Delete L to R elements
    function deleteElement(A, L, R, N)
    {
        let 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;
    }
     
    let A = [ 5, 8, 11, 15, 26, 14, 19, 17, 10, 14 ];
    let L = 2, R = 7;
    let n = A.length;
    let res_size = deleteElement(A, L, R, n);
    for (let i = 0; i < res_size; i++)
        document.write(A[i] + " ");
 
</script>


Output

5 8 11 17 10 14 

Complexity Analysis:

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


Last Updated : 01 Mar, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads