1248. 統計「優美子陣列」
阿新 • • 發佈:2020-11-20
給你一個整數陣列nums 和一個整數 k。
如果某個 連續 子陣列中恰好有 k 個奇數數字,我們就認為這個子陣列是「優美子陣列」。
請返回這個陣列中「優美子陣列」的數目。
示例 1:
輸入:nums = [1,1,2,1,1], k = 3
輸出:2
解釋:包含 3 個奇數的子陣列是 [1,1,2,1] 和 [1,2,1,1] 。
示例 2:
輸入:nums = [2,4,6], k = 1
輸出:0
解釋:數列中不包含任何奇數,所以不存在優美子陣列。
示例 3:
輸入:nums = [2,2,2,1,2,2,1,2,2,2], k = 2
輸出:16
提示:
1 <= nums.length <= 50000
1 <= nums[i] <= 10^5
1 <= k <= nums.length
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/count-number-of-nice-subarrays
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
from itertools import combinations class Solution: def numberOfSubarrays(self, nums: List[int], k: int) -> int: n=len(nums) if k>n:return 0 a=[0]*(n+2) a[0]=1 res=sum=0 for i in nums: if i%2==1: sum+=1 a[sum]+=1 if sum>=k: res+=a[sum-k] return res