📅  最后修改于: 2023-12-03 15:36:55.323000             🧑  作者: Mango
在一些场景中,我们需要删除一个列表中出现次数严格少于 k 次的元素。比如说,我们有一个列表,其中包含了多个数值,而有些数值只在列表中出现了一次。我们需要将这些只出现一次的数值从列表中删除,以达到简化和优化列表的目的。
为了解决这个问题,我们可以使用以下算法:
以下是 Python 代码实现:
def delete_less_than_k(nums, k):
counts = {}
for num in nums:
counts[num] = counts.get(num, 0) + 1
for i in range(len(nums)):
if counts[nums[i]] < k:
del nums[i]
return nums
以下是使用示例:
>>> nums = [1, 2, 2, 3, 4, 4, 5]
>>> delete_less_than_k(nums, 2)
[2, 2, 4, 4]
>>> delete_less_than_k(nums, 3)
[]