Delete all odd frequency elements from an Array
Last Updated :
15 Feb, 2023
Given an array arr containing integers of size N, the task is to delete all the elements from the array that have odd frequencies.
Examples:
Input: arr[] = {3, 3, 3, 2, 2, 4, 7, 7}
Output: {2, 2, 7, 7}
Explanation:
Frequency of 3 = 3
Frequency of 2 = 2
Frequency of 4 = 1
Frequency of 7 = 2
Therefore, the elements 3 and 4 have odd frequencies, and hence they are removed.
Input: arr[] = {1, 3, 3, 1, 2, 5, 6, 5}
Output: {1, 3, 3, 1, 5, 5}
Approach:
Below is the implementation of the above approach:
C++
// C++ program to removes all odd
// frequency elements from an Array
#include <bits/stdc++.h>
using namespace std;
// Function that removes the
// elements which have odd
// frequencies in the array
void remove(int arr[], int n)
{
// Create a map to store the
// frequency of each element
unordered_map<int, int> m;
for (int i = 0; i < n; i++) {
m[arr[i]]++;
}
// Remove the elements which
// have odd frequencies
for (int i = 0; i < n; i++) {
// If the element has
// odd frequency then skip
if ((m[arr[i]] & 1))
continue;
cout << arr[i] << ", ";
}
}
// Driver code
int main()
{
int arr[]
= { 3, 3, 3, 2,
2, 4, 7, 7 };
int n = sizeof(arr) / sizeof(arr[0]);
// Function call
remove(arr, n);
return 0;
}
Java
// Java program to removes all odd
// frequency elements from an Array
import java.util.*;
class GFG {
// Function that removes the
// elements which have odd
// frequencies in the array
static void remove(int arr[], int n) {
// Create a map to store the
// frequency of each element
HashMap<Integer, Integer> mp = new HashMap<Integer, Integer>();
for (int i = 0; i < n; i++) {
if (mp.containsKey(arr[i])) {
mp.put(arr[i], mp.get(arr[i]) + 1);
} else {
mp.put(arr[i], 1);
}
}
// Remove the elements which
// have odd frequencies
for (int i = 0; i < n; i++) {
// If the element has
// odd frequency then skip
if ((mp.containsKey(arr[i]) && mp.get(arr[i]) % 2 == 1))
continue;
System.out.print(arr[i] + ", ");
}
}
// Driver code
public static void main(String[] args) {
int arr[] = { 3, 3, 3, 2, 2, 4, 7, 7 };
int n = arr.length;
// Function call
remove(arr, n);
}
}
// This code is contributed by Rajput-Ji
Python3
# Python3 program to removes all odd
# frequency elements from an Array
# Function that removes the
# elements which have odd
# frequencies in the array
def remove(arr, n) :
# Create a map to store the
# frequency of each element
m = dict.fromkeys(arr,0);
for i in range(n) :
m[arr[i]] += 1;
# Remove the elements which
# have odd frequencies
for i in range(n) :
# If the element has
# odd frequency then skip
if ((m[arr[i]] & 1)) :
continue;
print(arr[i],end= ", ");
# Driver code
if __name__ == "__main__" :
arr = [ 3, 3, 3, 2,
2, 4, 7, 7 ];
n = len(arr);
# Function call
remove(arr, n);
# This code is contributed by Yash_R
C#
// C# program to removes all odd
// frequency elements from an Array
using System;
using System.Collections.Generic;
class GFG {
// Function that removes the
// elements which have odd
// frequencies in the array
static void remove(int []arr, int n) {
// Create a map to store the
// frequency of each element
Dictionary<int, int> mp = new Dictionary<int, int>();
for (int i = 0; i < n; i++) {
if (mp.ContainsKey(arr[i])) {
mp[arr[i]] = mp[arr[i]] + 1;
} else {
mp.Add(arr[i], 1);
}
}
// Remove the elements which
// have odd frequencies
for (int i = 0; i < n; i++) {
// If the element has
// odd frequency then skip
if ((mp.ContainsKey(arr[i]) && mp[arr[i]] % 2 == 1))
continue;
Console.Write(arr[i] + ", ");
}
}
// Driver code
public static void Main(String[] args) {
int []arr = { 3, 3, 3, 2, 2, 4, 7, 7 };
int n = arr.Length;
// Function call
remove(arr, n);
}
}
// This code is contributed by 29AjayKumar
JavaScript
<script>
// Javascript program to removes all odd
// frequency elements from an Array
// Function that removes the
// elements which have odd
// frequencies in the array
function remove(arr, n) {
// Create a map to store the
// frequency of each element
let mp = new Map();
for (let i = 0; i < n; i++) {
if (mp.has(arr[i])) {
mp.set(arr[i], mp.get(arr[i]) + 1);
} else {
mp.set(arr[i], 1);
}
}
// Remove the elements which
// have odd frequencies
for (let i = 0; i < n; i++) {
// If the element has
// odd frequency then skip
if ((mp.has(arr[i]) && mp.get(arr[i]) % 2 == 1))
continue;
document.write(arr[i] + ", ");
}
}
// Driver code
let arr = [ 3, 3, 3, 2, 2, 4, 7, 7 ];
let n = arr.length;
// Function call
remove(arr, n);
</script>
Time Complexity: O(N)
Auxiliary Space: O(N)
Similar Reads
Sum of all odd frequency elements in an array Given an array of integers containing duplicate elements. The task is to find the sum of all odd occurring elements in the given array. That is the sum of all such elements whose frequency is odd in the array. Examples: Input : arr[] = {1, 1, 2, 2, 3, 3, 3} Output : 9 The odd occurring element is 3,
8 min read
Minimum delete operations to make all elements of array same Given an array of n elements such that elements may repeat. We can delete any number of elements from the array. The task is to find a minimum number of elements to be deleted from the array to make it equal.Examples: Input: arr[] = {4, 3, 4, 4, 2, 4} Output: 2 After deleting 2 and 3 from array, arr
10 min read
Difference between sum of odd and even frequent elements in an Array Given an array arr[] of integers, the task is to find the absolute difference between the sum of all odd frequent array elements and the sum of all even frequent array elements. Examples: Input: arr[] = {1, 5, 5, 2, 4, 3, 3} Output: 9 Explanation: The even frequent elements are 5 and 3 (both occurri
12 min read
Minimum cost to make all array elements equal Given an array arr[] consisting of N positive integers, the task is to make all values of this array equal to some integer value with minimum cost after performing below operations any number of times (possibly zero). Reduce the array element by 2 or increase it by 2 with zero cost.Reduce the array
5 min read
Sum of all odd frequency elements in a Matrix Given a NxM matrix of integers containing duplicate elements. The task is to find the sum of all odd occurring elements in the given matrix. That is the sum of all such elements whose frequency is odd in the matrix. Examples: Input : mat[] = {{1, 1, 2}, {2, 3, 3}, {4, 5, 3}} Output : 18 The odd occu
5 min read