Remove elements from the array whose frequency lies in the range [l, r]

Given an array of integers, remove the elements from the array whose frequency lies in the range [l, r].

**Examples:**

Input : arr[] = { 1, 2, 3, 3, 2, 2, 5 }

l = 2, r = 3

Output : 1 5

We remove all those elements with frequencies from 2 to 5.Input : arr[] = { 1, 2, 3, 3, 3, 3 }

l = 2, r = 3

Output : 3 3 3 3

**Approach :**

- Take a hash map, which will store the frequency of all the elements in the array.
- Now, traverse once again.
- Remove the elements whose frequency lies between [l, r].
- Else, print it.

## C++

`// C++ program to remove the elements whose` `// frequency appears in the range [l, r]` `#include "iostream"` `#include "unordered_map"` `using` `namespace` `std;` ` ` `void` `removeElements(` `int` `arr[], ` `int` `n, ` `int` `l, ` `int` `r)` `{` ` ` `// Hash map which will store the` ` ` `// frequency of the elements of the array.` ` ` `unordered_map<` `int` `, ` `int` `> mp;` ` ` ` ` `for` `(` `int` `i = 0; i < n; ++i) {` ` ` ` ` `// Incrementing the frequency` ` ` `// of the element by 1.` ` ` `mp[arr[i]]++;` ` ` `}` ` ` ` ` `for` `(` `int` `i = 0; i < n; ++i) {` ` ` ` ` `// Print the element whose frequency` ` ` `// is not in the range [l, r]` ` ` `if` `(mp[arr[i]] < l or mp[arr[i] > r]) {` ` ` `cout << arr[i] << ` `" "` `;` ` ` `}` ` ` `}` `}` ` ` `int` `main()` `{` ` ` `int` `arr[] = { 1, 2, 3, 3, 2, 2, 5 };` ` ` `int` `n = ` `sizeof` `(arr) / ` `sizeof` `(arr[0]);` ` ` `int` `l = 2, r = 3;` ` ` `removeElements(arr, n, l, r);` ` ` `return` `0;` `}` |

## Java

`// Java program to remove the elements whose` `// frequency appears in the range [l, r]` `import` `java.util.HashMap;` ` ` `class` `GFG {` ` ` ` ` `static` `void` `removeElements(` `int` `arr[], ` `int` `n, ` `int` `l, ` `int` `r)` ` ` `{` ` ` `// Hash map which will store the` ` ` `// frequency of the elements of the array.` ` ` `HashMap<Integer, Integer> mp = ` `new` `HashMap<>();` ` ` ` ` `for` `(` `int` `i = ` `0` `; i < n; ++i) {` ` ` ` ` `// Incrementing the frequency` ` ` `// of the element by 1.` ` ` `// mp[arr[i]]++;` ` ` `int` `val = ` `0` `;` ` ` `if` `(mp.get(arr[i]) == ` `null` `) {` ` ` `val = ` `1` `;` ` ` `}` ` ` `else` `{` ` ` `val = mp.get(arr[i]) + ` `1` `;` ` ` `}` ` ` `// System.out.println("--"+mp.get(arr[i]));` ` ` `mp.put(arr[i], val);` ` ` `}` ` ` ` ` `for` `(` `int` `i = ` `0` `; i < n; ++i) {` ` ` ` ` `// Print the element whose frequency` ` ` `// is not in the range [l, r]` ` ` `if` `(mp.get(arr[i]) < l || mp.get(arr[i]) > r) {` ` ` `System.out.print(arr[i] + ` `" "` `);` ` ` `}` ` ` `}` ` ` `}` ` ` ` ` `// Driver code` ` ` `public` `static` `void` `main(String args[])` ` ` `{` ` ` `int` `arr[] = { ` `1` `, ` `2` `, ` `3` `, ` `3` `, ` `2` `, ` `2` `, ` `5` `};` ` ` `int` `n = arr.length;` ` ` `int` `l = ` `2` `, r = ` `3` `;` ` ` `removeElements(arr, n, l, r);` ` ` `}` `}` ` ` `// This code is contributed by 29AjayKumar` |

## Python3

`# Python 3 program to remove the elements ` `# whose frequency appears in the range [l, r]` ` ` `def` `removeElements(arr, n, l, r):` ` ` ` ` `# Hash map which will store the` ` ` `# frequency of the elements of the array.` ` ` `mp ` `=` `{i:` `0` `for` `i ` `in` `range` `(` `len` `(arr))}` ` ` ` ` `for` `i ` `in` `range` `(n):` ` ` ` ` `# Incrementing the frequency` ` ` `# of the element by 1.` ` ` `mp[arr[i]] ` `+` `=` `1` ` ` ` ` `for` `i ` `in` `range` `(n):` ` ` ` ` `# Print the element whose frequency` ` ` `# is not in the range [l, r]` ` ` `if` `(mp[arr[i]] < l ` `or` `mp[arr[i] > r]):` ` ` `print` `(arr[i], end ` `=` `" "` `)` ` ` `# Driver Code` `if` `__name__ ` `=` `=` `'__main__'` `:` ` ` `arr ` `=` `[` `1` `, ` `2` `, ` `3` `, ` `3` `, ` `2` `, ` `2` `, ` `5` `]` ` ` `n ` `=` `len` `(arr)` ` ` `l ` `=` `2` ` ` `r ` `=` `3` ` ` `removeElements(arr, n, l, r);` ` ` `# This code is contributed by` `# Sahil_Shelangia` |

## C#

`// C# program to remove the elements whose` `// frequency appears in the range [l, r]` `using` `System;` `using` `System.Collections.Generic;` ` ` `class` `GFG {` ` ` ` ` `static` `void` `removeElements(` `int` `[] arr, ` `int` `n, ` `int` `l, ` `int` `r)` ` ` `{` ` ` `// Hash map which will store the` ` ` `// frequency of the elements of the array.` ` ` `Dictionary<` `int` `, ` `int` `> mp = ` `new` `Dictionary<` `int` `, ` `int` `>();` ` ` ` ` `for` `(` `int` `i = 0; i < n; ++i) {` ` ` ` ` `// Incrementing the frequency` ` ` `// of the element by 1.` ` ` `// mp[arr[i]]++;` ` ` `int` `val = 0;` ` ` `if` `(!mp.ContainsKey(arr[i])) {` ` ` `val = 1;` ` ` `}` ` ` `else` `{` ` ` `val = mp[arr[i]] + 1;` ` ` `}` ` ` `if` `(!mp.ContainsKey(arr[i]))` ` ` `mp.Add(arr[i], val);` ` ` `else` `{` ` ` `mp.Remove(arr[i]);` ` ` `mp.Add(arr[i], val);` ` ` `}` ` ` `}` ` ` ` ` `for` `(` `int` `i = 0; i < n; ++i) {` ` ` ` ` `// Print the element whose frequency` ` ` `// is not in the range [l, r]` ` ` `if` `(mp[arr[i]] < l || mp[arr[i]] > r) {` ` ` `Console.Write(arr[i] + ` `" "` `);` ` ` `}` ` ` `}` ` ` `}` ` ` ` ` `// Driver code` ` ` `public` `static` `void` `Main(String[] args)` ` ` `{` ` ` `int` `[] arr = { 1, 2, 3, 3, 2, 2, 5 };` ` ` `int` `n = arr.Length;` ` ` `int` `l = 2, r = 3;` ` ` `removeElements(arr, n, l, r);` ` ` `}` `}` ` ` `// This code contributed by Rajput-Ji` |

**Output:**

1 5

**Time Complexity –** O(N)