20 lines
502 B
C++
20 lines
502 B
C++
class Solution {
|
|
public:
|
|
int subarraySum(vector<int>& nums, int k) {
|
|
int n = nums.size();
|
|
vector<int> p(n+1, 0);
|
|
for(int i = 1; i <= n; i++){
|
|
p[i] = p[i - 1] + nums[i - 1];
|
|
}
|
|
int ret = 0;
|
|
unordered_map<int, int> data;
|
|
for(int l = n; l; l--){
|
|
data[p[l]]++;
|
|
int target = k + p[l-1];
|
|
if(data.count(target)){
|
|
ret += data[target];
|
|
}
|
|
}
|
|
return ret;
|
|
}
|
|
}; |