1248. 统计「优美子数组」
https://leetcode-cn.com/problems/count-number-of-nice-subarrays/
func numberOfSubarrays(nums []int, k int) int { //滑动窗口法:left 每次滑动到下一个奇数处,并记下滑动的距离;right每次也滑动到下一个奇数处,并记下滑动的距离 left ,right,cnt,res := 0,0,0,0 for right < len(nums){ if cnt < k { if nums[right]%2 == 1{ cnt++ } right++ } if cnt == k{ tmp := right for right < len(nums) && nums[right] % 2 == 0{ right++ } rightCount := right-tmp+1 leftCount :=0 for left <= right && nums[left] %2 == 0{ left++ leftCount++ } res += rightCount*(leftCount+1) left++ cnt-- } } return res }