Sponsored
Sponsored
This approach involves iterating through the array and counting the length of contiguous segments of zeros. For each segment of zeros with length n
, the total number of zero-filled subarrays is the sum of the first n
natural numbers.
For a segment with length n
, the number of zero-filled subarrays is (n * (n + 1)) / 2
. This formula is derived from the well-known sum formula for the first n
integers.
Time Complexity: O(n), where n
is the size of the input array. This is because we only traverse the array once.
Space Complexity: O(1), since we only use a constant number of extra variables.
1var zeroFilledSubarray = function(nums) {
2 let count = 0;
3 let subarrayCount = 0;
4 for (const num of
The JavaScript solution uses a for-of loop to iterate through the array, counting zeros and propagating the count to calculate the number of zero-filled subarrays.
This approach is slightly variation. We keep track of the number of zero subarrays as we proceed through the array. Whenever a zero is encountered, the count of zero subarrays ending at that position is incremented by the number of zero subarrays ending at the previous position plus one. When a non-zero is encountered, we reset our counter.
Time Complexity: O(n) - traversing each element once to compute the solution.
Space Complexity: O(1) - using only a few extra integer variables for tracking.
The JavaScript solution evaluates the number of subarrays ending with zeros, extending zeroEndsHere
cumulatively to understand the possible trailing subarrays.