leetcode

Leetcode Solutions (0x6A73)
git clone https://git.pngu.org/leetcode
Log | Files | Refs | Submodules | README

binary_subarr_sum.py (754B)


# 930. Binary Subarrays With Sum
import collections

"""
given a binary array 'nums' and an integer 'goal', return the number o
non-empty subarrays with a sum 'goal'. a subarray is a contiguous part of the
array
 """


class Solution(object):
    def numSubarraysWithSum(self, nums, goal):
        """
        :type nums: List[int]
        :type goal: int
        :rtype: int
        """
        c = collections.Counter({0: 1})
        psum = ans = 0
        for i in nums:
            psum += i
            ans += c[psum - goal]
            c[psum] += 1
        return ans


if __name__ == "__main__":
    obj = Solution()
    print(obj.numSubarraysWithSum(nums=[1, 0, 1, 0, 1], goal=2))
    print(obj.numSubarraysWithSum(nums=[0, 0, 0, 0, 0], goal=0))