【4月打卡】統計「優美子數組」

題目

將偶數改爲0,奇數改爲1,問題就轉化爲求和爲K的連續子數組
Leetcode-560 和爲K的子數組

class Solution {
public:
    int numberOfSubarrays(vector<int>& nums, int k) {
        for(int i=0;i<nums.size();i++)
            if(nums[i]%2==0)
                nums[i]=0;
            else
                nums[i]=1;
        map<int,int> mp;
        mp[0]=1;
        int sum=0,cnt=0;
        for(int i=0;i<nums.size();i++)
        {
            sum+=nums[i];
            if(mp.find(sum-k)!=mp.end())
                cnt+=mp[sum-k];
            mp[sum]++;
        }
        return cnt;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章