在Python中计算具有恰好K个唯一元素的子列表数
假设我们有一个名为nums的数字列表和另一个值k,我们必须找到所需的子列表数量,其中子列表中恰好有k个唯一数字。
因此,如果输入是nums = [2, 2, 3, 4],k = 2,则输出将为3,因为我们有子列表,例如:[2、2、3]、[2、3]、[3、4]。
为了解决此问题,我们将按照以下步骤进行−
- 定义函数count()。这将取K
- slot: =一个空映射,所有值默认为0
- i:= res:= 0
- 对于每个索引j和nums的值x,执行以下操作
- slot[x]:=slot[x]+1
- while size of slot > K, do
- slot[nums[i]] := slot[nums[i]] – 1
- 如果slot[nums[i]]与0相同,则
- remove slot[nums[i]]
- i := i + 1
- res:= res + j – i + 1
- return res
- 从main方法执行以下操作−
- return count(k) – count(k-1)
更多Python相关文章,请阅读:Python 教程
示例(Python)
让我们看下面的实现,以更好地理解−