LeetCode 0930. Binary Subarrays With Sum Solution in Java, C++, Python & More | Explanation + Code

CoderIndeed
0
0930. Binary Subarrays With Sum

Description

Given a binary array nums and an integer goal, return the number of non-empty subarrays with a sum goal.

A subarray is a contiguous part of the array.

 

Example 1:

Input: nums = [1,0,1,0,1], goal = 2
Output: 4
Explanation: The 4 subarrays are bolded and underlined below:
[1,0,1,0,1]
[1,0,1,0,1]
[1,0,1,0,1]
[1,0,1,0,1]

Example 2:

Input: nums = [0,0,0,0,0], goal = 0
Output: 15

 

Constraints:

  • 1 <= nums.length <= 3 * 104
  • nums[i] is either 0 or 1.
  • 0 <= goal <= nums.length

Solutions

Solution 1

PythonJavaC++GoJavaScript
class Solution: def numSubarraysWithSum(self, nums: List[int], goal: int) -> int: cnt = Counter({0: 1}) ans = s = 0 for v in nums: s += v ans += cnt[s - goal] cnt[s] += 1 return ans(code-box)

Solution 2

PythonJavaC++GoJavaScript
class Solution: def numSubarraysWithSum(self, nums: List[int], goal: int) -> int: i1 = i2 = s1 = s2 = j = ans = 0 n = len(nums) while j < n: s1 += nums[j] s2 += nums[j] while i1 <= j and s1 > goal: s1 -= nums[i1] i1 += 1 while i2 <= j and s2 >= goal: s2 -= nums[i2] i2 += 1 ans += i2 - i1 j += 1 return ans(code-box)

Post a Comment

0Comments

Post a Comment (0)

#buttons=(Accept !) #days=(20)

Our website uses cookies to enhance your experience. Check Now
Accept !