forked from priyankashrama/JavaScript-Program
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsubarrey.cpp
More file actions
44 lines (38 loc) · 983 Bytes
/
Copy pathsubarrey.cpp
File metadata and controls
44 lines (38 loc) · 983 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
class Solution {
public:
int subarraySum(vector<int>& nums, int k) {
// int c=0,sum=0;
// for(int i=0;i<nums.size();i++){
// sum=0;
// for(int j=i;j<nums.size();j++){
// sum += nums[j];
// if(sum == k){
// c++;
// // break;
// }
// }
// // int sum +=nums[i];
// }
// return c;
unordered_map<int,int>m;
int c=0;
int n=nums.size();
// int fr[nums.size()]={0};
vector<int>fr(n,0);
fr[0]=nums[0];
for(int i=1;i<nums.size();i++){
fr[i] = fr[i-1]+nums[i];
}
for(int num: fr){
if(num==k)c++;
int val= num-k;
if(m.find(val) != m.end()) c += m[val];
if(m.find(num) != m.end()) m[num]++;
else{
m[num]=1;
}
// m[num]=1;
}
return c;
}
};