和为 K 的子数组
和为 K 的子数组
题目描述:给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。(子数组是数组中元素的连续非空序列)
算法逻辑:前缀和,哈希表
数学逻辑
代码
class Solution {
public:int subarraySum(vector<int> &nums, int k){int sum=0;int ret=0;unordered_map<int,int> hash;hash[0]=1;for(auto i:nums){sum+=i;ret+=hash[sum-k];hash[sum]++;}return ret;}
};