560. 和为 K 的子数组
This commit is contained in:
20
test010.cpp
Normal file
20
test010.cpp
Normal file
@@ -0,0 +1,20 @@
|
||||
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;
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user