📅  最后修改于: 2023-12-03 14:39:20.944000             🧑  作者: Mango
给定一个整数数组 nums
和一个正整数 k
,找出数组中所有出现次数为 k
的唯一元素,这些唯一元素必须是整数,且不是双精度数。
首先,可以使用哈希表来记录每个元素出现的次数,然后再遍历哈希表,找出出现次数为 k
且不是双精度数的元素,最后返回它们的数量即可。
对于如何判断元素是否为双精度数,可以根据其小数部分是否为零来判断,即判断 abs(num - floor(num)) > 0
是否成立。
def count_unique_elements(nums, k):
count = {}
for num in nums:
count[num] = count.get(num, 0) + 1
unique_elements = [num for num, freq in count.items() if freq == k and abs(num - int(num)) > 0]
return len(unique_elements)
assert count_unique_elements([1, 2, 3, 4, 5, 6, 6, 7, 7, 7], 2) == 0
assert count_unique_elements([1, 2, 3, 4, 5, 6, 6, 7, 7, 7], 3) == 2
assert count_unique_elements([1.1, 2.2, 3.3, 4.0, 5.1, 6.0], 1) == 3
以上代码实现可以在 Python 3 中执行。