From f66299cf560a3a6eebdde83d84d0c1f2654ec77b Mon Sep 17 00:00:00 2001 From: Tetsuya Hasegawa Date: Tue, 11 Jun 2024 16:19:21 +0900 Subject: [PATCH] Create 1481-least-number-of-unique-integers-after-k-removals.java --- ...r-of-unique-integers-after-k-removals.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 java/1481-least-number-of-unique-integers-after-k-removals.java diff --git a/java/1481-least-number-of-unique-integers-after-k-removals.java b/java/1481-least-number-of-unique-integers-after-k-removals.java new file mode 100644 index 000000000..3cc46bc5a --- /dev/null +++ b/java/1481-least-number-of-unique-integers-after-k-removals.java @@ -0,0 +1,26 @@ +class Solution { + public int findLeastNumOfUniqueInts(int[] arr, int k) { + Map freq = new HashMap<>(); + for (int num : arr) { + freq.put(num, freq.getOrDefault(num, 0) + 1); + } + int[] freqList = new int[arr.length + 1]; + for (int f : freq.values()) { + freqList[f] += 1; + } + + int res = freq.size(); + for (int f = 1; f < freqList.length; f++) { + int remove = freqList[f]; + if (k >= f * remove) { + k -= f * remove; + res -= remove; + } else { + remove = k / f; + res -= remove; + break; + } + } + return res; + } +}