Remove All Occurrences of an Element in an Array (original) (raw)

Last Updated : 09 Nov, 2024

Given an integer array **arr[] and an integer **ele the task is to the remove all occurrences of **ele from arr[] **in-place and return the number of elements which are not equal to **ele. If there are **k number of elements which are not equal to **ele then the input array arr[] should be modified such that the first **k elements should contain the elements which are not equal to **ele and then the remaining elements.

**Note: The order of first **k elements may be changed.

**Examples:

**Input: arr[] = [3, 2, 2, 3], ele = 3
**Output: 2
**Explanation: The answer is 2 because there are 2 elements which are not equal to 3 and arr[] will be modified such that the first 2 elements contain the elements which are not equal to 3 and remaining elements can contain any element. So, modified arr[] = [2, 2, _, _]

**Input: arr[] = [0, 1, 3, 0, 2, 2, 4, 2], ele = 2
**Output: 5
**Explanation: The answer is 5 because there are 5 elements which are not equal to 2 and arr[] will be modified such that the first 5 elements contain the elements which are not equal to 2 and remaining elements can contain any element. So, modified arr[] = [__0, 1, 3, 0, 4, _, _, __]

**Approach:

The idea is to iterate over the array while maintaining a subarray at the beginning that contains only the elements which are **not equal to ele. So, we can use a counter, say **k to track the ending point of this subarray and whenever we encounter an element which is not equal to **ele, we can add the element at kth index and increment the value of k.

**Step-by-step algorithm:

// C++ Code to remove all occurrences of // an element in an array

#include #include using namespace std;

int removeElement(vector& arr, int ele) {

// Initialize the counter for the 
// elements not equal to ele    
int k = 0;
for (int i = 0; i < arr.size(); i++) {

    // Place the element which is not 
    // equal to ele at the kth position
    if (arr[i] != ele) {
        arr[k] = arr[i];  
        
        // Increment the count of 
        // elements not equal to ele
        k++;             
    }              
}
return k;

}

int main() { vector arr = {0, 1, 3, 0, 2, 2, 4, 2}; int ele = 2; cout << removeElement(arr, ele) << endl; return 0; }

C

// C Code to remove all occurrences of // an element in an array

#include <stdio.h>

int removeElement(int arr[], int n, int ele) {

// Initialize the counter for the 
// elements not equal to ele    
int k = 0;
for (int i = 0; i < n; i++) {

    // Place the element which is not 
    // equal to ele at the kth position
    if (arr[i] != ele) {
        arr[k] = arr[i];  
        
        // Increment the count of 
        // elements not equal to ele
        k++;             
    }              
}
return k;

}

int main() { int arr[] = {0, 1, 3, 0, 2, 2, 4, 2}; int n = sizeof(arr) / sizeof(arr[0]); int ele = 2; printf("%d\n", removeElement(arr, n, ele)); return 0; }

Java

// Java Code to remove all occurrences of // an element in an array

import java.util.Arrays;

class GfG { static int removeElement(int[] arr, int ele) {

    // Initialize the counter for the 
    // elements not equal to ele    
    int k = 0;
    for (int i = 0; i < arr.length; i++) {

        // Place the element which is not 
        // equal to ele at the kth position
        if (arr[i] != ele) {
            arr[k] = arr[i];  
            
            // Increment the count of 
            // elements not equal to ele
            k++;             
        }              
    }
    return k;
}

public static void main(String[] args) {
    int[] arr = {0, 1, 3, 0, 2, 2, 4, 2};
    int ele = 2;
    System.out.println(removeElement(arr, ele));
}

}

Python

Python Code to remove all occurrences of

an element in an array

def removeElement(arr, ele):

# Initialize the counter for the 
# elements not equal to ele    
k = 0
for i in range(len(arr)):

    # Place the element which is not 
    # equal to ele at the kth position
    if arr[i] != ele:
        arr[k] = arr[i]  
        
        # Increment the count of 
        # elements not equal to ele
        k += 1             
          
return k 

if name == "main": arr = [0, 1, 3, 0, 2, 2, 4, 2] ele = 2 print(removeElement(arr, ele))

C#

// C# Code to remove all occurrences of // an element in an array

using System;

class GfG { static int removeElement(int[] arr, int ele) {

    // Initialize the counter for the 
    // elements not equal to ele    
    int k = 0;
    for (int i = 0; i < arr.Length; i++) {

        // Place the element which is not 
        // equal to ele at the kth position
        if (arr[i] != ele) {
            arr[k] = arr[i];  
            
            // Increment the count of 
            // elements not equal to ele
            k++;             
        }              
    }
    return k;
}

static void Main() {
    int[] arr = { 0, 1, 3, 0, 2, 2, 4, 2 };
    int ele = 2;
    Console.WriteLine(removeElement(arr, ele));
}

}

JavaScript

// JavaScript Code to remove all occurrences of // an element in an array

function removeElement(arr, ele) {

// Initialize the counter for the 
// elements not equal to ele    
let k = 0;
for (let i = 0; i < arr.length; i++) {

    // Place the element which is not 
    // equal to ele at the kth position
    if (arr[i] !== ele) {
        arr[k] = arr[i];  
        
        // Increment the count of 
        // elements not equal to ele
        k++;             
    }              
}
return k;

}

// Driver Code const arr = [0, 1, 3, 0, 2, 2, 4, 2]; const ele = 2; console.log(removeElement(arr, ele));

`

**Time Complexity: O(n), where **n is the number of elements in **arr[]
**Auxiliary Space: O(1)