2348. Number of Zero-Filled Subarrays
Description
Given an integer array nums
, return the number of subarrays filled with 0
.
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
Solutions
Solution 1: Traversal and Counting
We traverse the array \(\textit{nums}\) and use a variable \(\textit{cnt}\) to record the current number of consecutive \(0\)s. For the current element \(x\) we are traversing, if \(x\) is \(0\), then \(\textit{cnt}\) is incremented by \(1\), and the number of all-zero subarrays ending with the current \(x\) is \(\textit{cnt}\), which we add to the answer. Otherwise, we set \(\textit{cnt}\) to \(0\).
After the traversal, we return the answer.
Time complexity \(O(n)\), where \(n\) is the length of the array \(\textit{nums}\). Space complexity \(O(1)\).
Similar problems:
1 2 3 4 5 6 7 8 9 10 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
|
1 2 3 4 5 6 7 8 9 10 11 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|