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