zoukankan      html  css  js  c++  java
  • 1481. Least Number of Unique Integers after K Removals

    Given an array of integers arr and an integer k. Find the least number of unique integers after removing exactly k elements.

    Example 1:

    Input: arr = [5,5,4], k = 1
    Output: 1
    Explanation: Remove the single 4, only 5 is left.
    

    Example 2:

    Input: arr = [4,3,1,1,3,3,2], k = 3
    Output: 2
    Explanation: Remove 4, 2 and either one of the two 1s or three 3s. 1 and 3 will be left.

    Constraints:

    • 1 <= arr.length <= 10^5
    • 1 <= arr[i] <= 10^9
    • 0 <= k <= arr.length
    class Solution {
       public int findLeastNumOfUniqueInts(int[] arr, int k) {
            Map<Integer, Integer> map = new HashMap<>();
            for (int n : arr) map.put(n, map.getOrDefault(n, 0) + 1);
            List<Integer> l = new ArrayList<>(map.keySet());
            Collections.sort(l, (a, b) -> map.get(a) - map.get(b));
            int n = map.size(), remove = 0, idx = 0;
            while (k > 0 && idx < n) {
                k -= map.get(l.get(idx++));
                if (k >= 0) remove++;
            }
            return n - remove;
        }
    }

    这就是差距吧。。

  • 相关阅读:
    c++作业2 9.22
    c++作业1 9.22
    c++练习题2
    c++练习题1
    10.10作业3
    10.10作业2
    10.10作业 1
    9.22作业5
    9.22作业4
    9.22zuo
  • 原文地址:https://www.cnblogs.com/wentiliangkaihua/p/13156774.html
Copyright © 2011-2022 走看看