# 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
Recommended Articles
Page :