Delete array element in given index range [L – R]
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.