1 Star 0 Fork 0

xiangxiang/LeetCode-NOTES

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
solution.cpp 885 Bytes
一键复制 编辑 原始数据 按行查看 历史
默然 提交于 7年前 . 添加496, 498, 503等题
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;
}
};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/xiangxiang920/LeetCode-NOTES.git
git@gitee.com:xiangxiang920/LeetCode-NOTES.git
xiangxiang920
LeetCode-NOTES
LeetCode-NOTES
master

搜索帮助