source: https://leetcode.com/problems/number-of-zero-filled-subarrays/description/
Number of Zero-Filled Subarrays
Given an integer array nums, return the number of zero-filled subarrays.
A subarray is a contiguous non-empty sequence of elements within an array.
Example 1:
Input: nums = [1,3,0,0,2,0,0,4]
Output: 6
Explanation:
There are 4 occurrences of [0] as a subarray.
There are 2 occurrences of [0,0] as a subarray.
There is no occurrence of a subarray with a size more than 2 filled with 0. Therefore, we return 6.
Example 2:
Input: nums = [0,0,0,2,0,0]
Output: 9
Explanation:
There are 5 occurrences of [0] as a subarray.
There are 3 occurrences of [0,0] as a subarray.
There is 1 occurrence of [0,0,0] as a subarray.
There is no occurrence of a subarray with a size more than 3 filled with 0. Therefore, we return 9.
Example 3:
Input: nums = [2,10,2019]
Output: 0
Explanation: There is no subarray filled with 0. Therefore, we return 0.
Constraints:
- 1 <= nums.length <= 105
- -109 <= nums[i] <= 109
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
class Solution { //focus on the zeros //[0, 0, 0, 0] //count the number of sub arrays of different sizes //subarray of size 1: 4 //subarray of size 2: 3 //subarray of size 3: 2 //subarray of size 4: 1 //total: 10 public long zeroFilledSubarray(int[] nums) { long sum = 0; long count = 0; for(int i=0;i<nums.length;i++){ if(nums[i]==0){ count ++; } else { //if the the num is not zero //reset the count count = 0; } sum = sum + count; } return sum; } } |
n -> is the number of elements in an array
Time Complexity
- O(n)
Space Complexity
- O(1)