給定一個整數數組和一個整數 k,你需要找到該數組中和爲 k 的連續的子數組的個數。
示例 1 :
輸入:nums = [1,1,1], k = 2
輸出: 2 , [1,1] 與 [1,1] 爲兩種不同的情況。
說明 :
- 數組的長度爲 [1, 20,000]。
- 數組中元素的範圍是 [-1000, 1000] ,且整數 k 的範圍是 [-1e7, 1e7]。
C++
class Solution {
public:
int subarraySum(vector<int>& nums, int k) {
int n=nums.size();
int sum=0,res=0;
unordered_map<int,int> m;
m[0]=1;
for(int i=0;i<n;i++){
sum+=nums[i];
res+