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 = 3 but this is exclude
A =  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
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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 ``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);``    ``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 deleteElement(``int` `A[], ``int` `L, ``int` `R, ``int` `N) {``        ``Vector 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 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

 `= ``\$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 ``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);``    ``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

 `= ``\$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