代码拉取完成,页面将自动刷新
class Solution {
public:
int numSubarraysWithSum(vector<int>& A, int S) {
vector<int> dp(A.size()+1,0);
map<int, vector<int> > mapp;
dp[0] = 0;
for(int i=0;i<A.size();i++){
dp[i+1] = dp[i] + A[i];
if(mapp.count(dp[i+1])>0)
mapp[dp[i+1]].push_back(i);
else
mapp[dp[i+1]] = vector<int>(1,i);
}
int num = 0;
for(int i=0;i<A.size();i++){
int del = S + dp[i];
if(mapp.count(del)>0){
for(int j=0;j<mapp[del].size();j++)
if(mapp[del][j] >= i)
num += 1;
}
// for(int j=i;j<A.size();j++){
// if(dp[j+1] - dp[i] == S)
// num += 1;
// }
}
return num;
}
};
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。