# Remove elements from the array which appear more than k times

• Difficulty Level : Basic
• Last Updated : 23 Jun, 2022

Given an array of integers, remove all the occurrences of those elements which appear strictly more than k times in the array.
Examples:

```Input : arr[] = {1, 2, 2, 3, 2, 3, 4}
k = 2
Output : 1 3 3 4

Input : arr[] = {2, 5, 5, 7}
k = 1
Output : 2 7```

Approach:

• Take a hash map, which will store the frequency of all the elements in the array.
• Now, traverse once again.
• Print the elements which appear less than or equal to k times.

## C++

 `// C++ program to remove the elements which``// appear more 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``        ``// less than or equal to k times.``        ``if` `(mp[arr[i]] <= k) {``            ``cout << arr[i] << ``" "``;``        ``}``    ``}``}` `int` `main(``int` `argc, ``char` `const``* argv[])``{``    ``int` `arr[] = { 1, 2, 2, 3, 2, 3, 4 };``    ``int` `n = ``sizeof``(arr) / ``sizeof``(arr);` `    ``int` `k = 2;` `    ``RemoveElements(arr, n, k);``    ``return` `0;``}`

## Java

 `// Java program to remove the elements which``// appear more than k times from the array.``import` `java.util.HashMap;``import` `java.util.Map;` `class` `GFG``{` `static` `void` `RemoveElements(``int` `arr[], ``int` `n, ``int` `k)``{``    ``// Hash map which will store the``    ``// frequency of the elements of the array.``    ``Map mp = ``new` `HashMap<>();` `    ``for` `(``int` `i = ``0``; i < n; ++i)``    ``{``        ``// Incrementing the frequency``        ``// of the element by 1.``        ``mp.put(arr[i],mp.get(arr[i]) == ``null``?``1``:mp.get(arr[i])+``1``);` `    ``}` `    ``for` `(``int` `i = ``0``; i < n; ++i)``    ``{``        ``// Print the element which appear``        ``// less than or equal to k times.``        ``if` `(mp.containsKey(arr[i]) && 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 Rajput-Ji`

## Python3

 `# Python 3 program to remove the elements which``# appear more 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 ``=` `{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 which appear``        ``# less than or equal to k times.``        ``if` `(mp[arr[i]] <``=` `k):``            ``print``(arr[i], end ``=` `" "``)` `# Driver Code   ``if` `__name__ ``=``=` `'__main__'``:``    ``arr ``=` `[``1``, ``2``, ``2``, ``3``, ``2``, ``3``, ``4``]``    ``n ``=` `len``(arr)` `    ``k ``=` `2` `    ``RemoveElements(arr, n, k)` `# This code is contributed by``# Sahil_Shelangia`

## C#

 `// C# program to remove the elements which``// appear more than k times from the array.``using` `System;``using` `System.Collections.Generic;` `class` `GFG``{``static` `void` `RemoveElements(``int` `[] arr,``                           ``int` `n, ``int` `k)``{``    ``// 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.``        ``if``(mp.ContainsKey(arr[i]))``            ``mp[arr[i]]++;``        ``else``            ``mp[arr[i]] = 1;``    ``}` `    ``for` `(``int` `i = 0; i < n; ++i)``    ``{``        ``// Print the element which appear``        ``// less than or equal to k times.``        ``if` `(mp.ContainsKey(arr[i]) && mp[arr[i]] <= k)``        ``{``            ``Console.Write(arr[i] + ``" "``);``        ``}``    ``}``}` `// Driver code``static` `public` `void` `Main()``{``    ``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 Mohit kumar 29`

## Javascript

 ``

Output:

`1 3 3 4`

Time Complexity – O(N), where N is the size of the given integer.

Auxiliary Space – O(N), where N is the size of the given integer.

#### Method #2:Using Built-in Python functions:

• Count the frequencies of every element using Counter function
• Traverse the array.
• Print the elements which appear less than or equal to k times.

Below is the implementation of the above approach:

## Python3

 `# Python3 program to remove the elements which``# appear strictly less than k times from the array.``from` `collections ``import` `Counter` `def` `removeElements(arr, n, k):` `    ``# Calculating frequencies``    ``# using Counter function``    ``freq ``=` `Counter(arr)``    ``for` `i ``in` `range``(n):` `        ``# Print the element which appear``        ``# more than or equal to k times.``        ``if` `(freq[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 vikkycirus`

Output:

`1 3 3 4 `

Time Complexity – O(N), where N is the size of the given integer.

Auxiliary Space – O(N), where N is the size of the given integer.

My Personal Notes arrow_drop_up