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)