leetcode 1248.统计【优美子数组】 前缀和+哈希表优化

题目描述

统计【优美子数组】
leetcode 1248.统计【优美子数组】 前缀和+哈希表优化_第1张图片


思路

这题的思路可以完全借鉴leetcode 560.和为K的子数组 前缀和+哈希表优化
几乎一模一样。
只是560题中前缀和是真的存储的前缀和,本题前缀和存储的是前面所有数字中到底有多少个是奇数


代码

class Solution {
public:
    int numberOfSubarrays(vector<int>& nums, int k) {
        unordered_map<int,int> mp;

        int count=0;
        int pre=0;

        for(auto& x:nums)
        {
            if(x%2==1)
                pre++;
            if(pre==k)
                count++;
            if(mp.find(pre-k)!=mp.end())
                count+=mp[pre-k];
            mp[pre]++;
        }
        return count;
    }
};

你可能感兴趣的:(code,刷题,总结&记录,#,LeetCode刷题,总结,#,华为校招编程笔试准备,leetcode,散列表,算法)