主页有其他数据结构内容(持续更新中)
难度:Medium 代码:利用哈希表,键是「前缀和」,值是「优美子数组的个数」
这里的前缀和指的是到当前位置为止,数组中有多少个奇数
这里的优美子数组的个数指的是从0号位置开始,到当前位置总共有多少个优美子数组
class Solution {
public:
int numberOfSubarrays(vector& nums, int k) {
unordered_mapdic = {{0, 1}};
int psum = 0;
int ans = 0;
for(auto c : nums){
psum += (c & 1); // 奇数为1,偶数为0
ans += dic[psum - k];
dic[psum]++;
}
return ans;
}
};



