Remove elements that appear strictly less than k times

Given an array of integers, remove all the elements which appear strictly less than k times.

Examples:

```Input : arr[] = {1, 2, 2, 3, 2, 3, 4}
k = 2
Output : 2 2 3 2 3
Explanation : {1, 4} appears less than 2 times.
```

Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach :

• Take a hash map, which will store the frequency of all the elements in the array.
• Now, traverse once again.
• Remove the elements which appears strictly less than k times.
• Else, print it.

C++

 `// C++ program to remove the elements which ` `// appear strictly less than k times from the array. ` `#include "iostream" ` `#include "unordered_map" ` `using` `namespace` `std; ` ` `  `void` `removeElements(``int` `arr[], ``int` `n, ``int` `k) ` `{ ` `    ``// 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 which appear ` `        ``// more than or equal to k times. ` `        ``if` `(mp[arr[i]] >= k) { ` `            ``cout << arr[i] << ``" "``; ` `        ``} ` `    ``} ` `} ` ` `  `int` `main() ` `{ ` `    ``int` `arr[] = { 1, 2, 2, 3, 2, 3, 4 }; ` `    ``int` `n = ``sizeof``(arr) / ``sizeof``(arr[0]); ` `    ``int` `k = 2; ` `    ``removeElements(arr, n, k); ` `    ``return` `0; ` `} `

Java

 `// Java program to remove the elements which  ` `// appear strictly less than k times from the array.  ` `import` `java.util.HashMap; ` ` `  `class` `geeks  ` `{ ` ` `  `    ``public` `static` `void` `removeElements(``int``[] arr,  ` `                                        ``int` `n, ``int` `k) ` `    ``{ ` `         `  `        ``// Hash map which will store the ` `        ``// frequency of the elements of the array. ` `        ``HashMap mp = ``new` `HashMap<>(); ` ` `  `        ``for` `(``int` `i = ``0``; i < n; ++i)  ` `        ``{ ` ` `  `            ``// Incrementing the frequency ` `            ``// of the element by 1. ` `            ``if` `(!mp.containsKey(arr[i])) ` `                ``mp.put(arr[i], ``1``); ` `            ``else` `            ``{ ` `                ``int` `x = mp.get(arr[i]); ` `                ``mp.put(arr[i], ++x); ` `            ``} ` `        ``} ` ` `  `        ``for` `(``int` `i = ``0``; i < n; ++i)  ` `        ``{ ` `             `  `            ``// Print the element which appear ` `            ``// more than or equal to k times. ` `            ``if` `(mp.get(arr[i]) >= k) ` `                ``System.out.print(arr[i] + ``" "``); ` `        ``} ` `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `main(String[] args)  ` `    ``{ ` `        ``int``[] arr = { ``1``, ``2``, ``2``, ``3``, ``2``, ``3``, ``4` `}; ` `        ``int` `n = arr.length; ` `        ``int` `k = ``2``; ` `        ``removeElements(arr, n, k); ` `    ``} ` `} ` ` `  `// This code is contributed by ` `// sanjeev2552 `

Python3

 `# Python3 program to remove the elements which ` `# appear strictly less than k times from the array. ` `def` `removeElements(arr, n, k): ` `     `  `    ``# Hash map which will store the ` `    ``# frequency of the elements of the array. ` `    ``mp ``=` `dict``() ` ` `  `    ``for` `i ``in` `range``(n): ` `         `  `        ``# Incrementing the frequency ` `        ``# of the element by 1. ` `        ``mp[arr[i]] ``=` `mp.get(arr[i], ``0``) ``+` `1` ` `  `    ``for` `i ``in` `range``(n): ` ` `  `        ``# Prthe element which appear ` `        ``# more than or equal to k times. ` `        ``if` `(arr[i] ``in` `mp ``and` `mp[arr[i]] >``=` `k): ` `            ``print``(arr[i], end ``=` `" "``) ` ` `  `# Driver Code ` `arr ``=` `[``1``, ``2``, ``2``, ``3``, ``2``, ``3``, ``4``] ` `n ``=` `len``(arr) ` `k ``=` `2` `removeElements(arr, n, k) ` ` `  `# This code is contributed by Mohit Kumar `

Output:

```2 2 3 2 3
```

Time Complexity – O(N)

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.