码迷,mamicode.com
首页 > 其他好文 > 详细

108th LeetCode Weekly Contest Binary Subarrays With Sum

时间:2018-10-28 13:43:37      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:就是   out   bin   for   没有   solution   tco   连续   length   

In an array A of 0s and 1s, how many non-empty subarrays have sum S?

 

Example 1:

Input: A = [1,0,1,0,1], S = 2
Output: 4
Explanation: 
The 4 subarrays are bolded below:
[1,0,1,0,1]
[1,0,1,0,1]
[1,0,1,0,1]
[1,0,1,0,1]

 

Note:

  1. A.length <= 30000
  2. 0 <= S <= A.length
  3. A[i] is either 0 or 1.

通用解法就是求连续数组的和有多少个,这种题代码都不会变的

把和存起来,给后面的数字-S看有没有这个和,有的话加起来,然后a[ans]++说明又存在符合条件的解了

class Solution {
public:
    int numSubarraysWithSum(vector<int>& A, int S) {
       long long ans = 0;
       long long k=0;
       map<long long,long long>a;
       a[0]=1;
       int len = A.size();
       for(int i=0;i<len;i++){
        ans+=A[i];
        if(ans>=S){
            k+=a[ans-S];
        }
        a[ans]++;
       }
       return k;
    }
};

 

108th LeetCode Weekly Contest Binary Subarrays With Sum

标签:就是   out   bin   for   没有   solution   tco   连续   length   

原文地址:https://www.cnblogs.com/yinghualuowu/p/9865106.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!