天天看點

LeetCode 1248 統計優美子數組

給定一個數組和整數k

如果某個子數組中恰好有k個奇數數字,認為該數組為優美子數組

傳回優美子數組的個數

同樣是利用哈希表解決

from collections import defaultdict
class Solution:
    def numberOfSubarrays(self, nums: List[int], k: int) -> int:
        cnt=defaultdict(int)
        cnt[0]=1
        odd_num,res=0,0
        for i,val in enumerate(nums):
            if val%2==1:
                odd_num+=1
            cnt[odd_num]+=1
            if odd_num>=k:
                res+=cnt[odd_num-k]
        return res