【发布时间】:2021-11-07 07:39:33
【问题描述】:
给定一个整数数组 nums,找出最多有 k 个奇数元素的不同连续子数组的数量。当两个子数组至少有一个不同的元素时,它们是不同的。
我能够在 O(n^2) 中做到这一点。但需要 O(nlogn) 的解决方案。
示例 1:
Input: nums = [3, 2, 3, 4], k = 1
Output: 7
Explanation: [3], [2], [4], [3, 2], [2, 3], [3, 4], [2, 3, 4]
Note we did not count [3, 2, 3] since it has more than k odd elements.
示例 2:
Input: nums = [1, 3, 9, 5], k = 2
Output: 7
Explanation: [1], [3], [9], [5], [1, 3], [3, 9], [9, 5]
示例 3:
Input: nums = [3, 2, 3, 2], k = 1
Output: 5
Explanation: [3], [2], [3, 2], [2, 3], [2, 3, 2]
[3], [2], [3, 2] - duplicates
[3, 2, 3], [3, 2, 3, 2] - more than k odd elements
示例 4:
Input: nums = [2, 2, 5, 6, 9, 2, 11, 9, 2, 11, 12], k = 1
Output: 18
【问题讨论】:
标签: arrays algorithm data-structures sub-array