在Python中计数漂亮子数组的程序
假设我们有一个名为nums的数组和另一个值k。我们必须找到漂亮子数组的数量。如果一个子数组中有k个奇数,则称其为漂亮子数组。
因此,如果输入如下nums = [1,1,2,1,1],k = 3,则输出将是2,因为有两个子数组[1,1,2,1]和[1,2,1,1]。
为了解决这个问题,我们将遵循以下步骤 –
- odd_i:一个新列表
-
对于 i 在范围 0 到 nums 的大小 – 1,做以下操作
- 如果 nums[i] mod 2 等于 1,则
- 在odd_i的末尾插入i
- 如果 nums[i] mod 2 等于 1,则
- start := 0, end := k – 1
-
i := 0
-
count := 0
-
当end <奇数_i的大小时,执行以下操作
- 如果end与odd_i的大小-1相同,则
- j := nums的大小 – 1
- 否则,
- j := odd_i[end + 1] – 1
- count := count + (odd_i[start] – i + 1) * (j – odd_i[end] + 1)
-
i := odd_i[start] + 1
-
start := start + 1
-
end := end + 1
- 如果end与odd_i的大小-1相同,则
-
返回count
例子
让我们看以下实现以更好地理解-