📌  相关文章
📜  Array 中存在 K 次且不存在双精度的元素的数量(1)

📅  最后修改于: 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 中执行。