LeetCode 5437. 不同整数的最少数目

简介: 给你一个整数数组 arr 和一个整数 k 。现需要从数组中恰好移除 k 个元素,请找出移除后数组中不同整数的最少数目。

题目

给你一个整数数组 arr 和一个整数 k 。现需要从数组中恰好移除 k 个元素,请找出移除后数组中不同整数的最少数目。

示例 1:

输入:arr = [5,5,4], k = 1
输出:1
解释:移除 1 个 4 ,数组中只剩下 5 一种整数。
示例 2:

输入:arr = [4,3,1,1,3,3,2], k = 3
输出:2
解释:先移除 4、2 ,然后再移除两个 1 中的任意 1 个或者三个 3 中的任意 1 个,最后剩下 1 和 3 两种整数。

提示:

1 <= arr.length <= 10^5
1 <= arr[i] <= 10^9
0 <= k <= arr.length

解题思路

class Solution:
    def findLeastNumOfUniqueInts(self, arr: [int], k: int) -> int:
        import collections
        countDic = dict(collections.Counter(arr).most_common())
        # print(countDic)
        # retList = list(countDic)
        # print(retList)
        # return len(set(retList[k:]))
        resKeyList = list(countDic.keys())
        resKeyList.reverse()
        for i in resKeyList:
            count = countDic[i]
            k -= count
            if k >= 0:
                countDic.pop(i)
                # print(countDic)
            if k < 0:
                break
        return len(countDic)
目录
相关文章
|
1月前
|
算法 Java
[Java·算法·简单] LeetCode 13. 罗马数字转整数 详细解读
[Java·算法·简单] LeetCode 13. 罗马数字转整数 详细解读
22 0
|
3月前
|
算法 测试技术 C#
区间合并|LeetCode2963:统计好分割方案的数目
区间合并|LeetCode2963:统计好分割方案的数目
|
3月前
|
算法 测试技术 C#
【贪心算法】LeetCode2071:你可以安排的最多任务数目
【贪心算法】LeetCode2071:你可以安排的最多任务数目
|
8天前
|
存储 算法
leetcode1237. 找出给定方程的正整数解
leetcode1237. 找出给定方程的正整数解
8 0
|
1月前
|
存储
leetcode2744. 最大字符串配对数目
leetcode2744. 最大字符串配对数目
17 0
|
1月前
leetcode2376. 统计特殊整数
leetcode2376. 统计特殊整数
15 1
|
1月前
|
Serverless
leetcode2719. 统计整数数目
leetcode2719. 统计整数数目
13 0
力扣2457 美丽整数最小增量
力扣2457 美丽整数最小增量
|
2月前
|
Java
LeetCode-整数转罗马数字=Java
整数转罗马数字=Java题解
12 0
|
3月前
|
算法 测试技术 C#
LeetCode2444: 统计定界子数组的数目
LeetCode2444: 统计定界子数组的数目

热门文章

最新文章