2348.Number of Zero-Filled Subarrays
===
###### tags: `Medium`,`Array`,`Math`
[2348. Number of Zero-Filled Subarrays](https://leetcode.com/problems/number-of-zero-filled-subarrays/)
### 題目描述
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` <= 10^5^
* -10^9^ <= `nums[i]` <= 10^9^
### 解答
#### C++
```cpp=
class Solution {
public:
long long zeroFilledSubarray(vector<int>& nums) {
long long ans = 0, count = 0;
for (auto num : nums) {
if (num) count = 0;
else count++;
ans += count;
}
return ans;
}
};
```
> [name=Yen-Chi Chen][time=Tue, Mar 21, 2023]
#### Python
```python=
class Solution:
def zeroFilledSubarray(self, nums: List[int]) -> int:
ans, count = 0, 0
for n in nums:
if n:
count = 0
else:
count += 1
ans += count
return ans
```
> [name=Yen-Chi Chen][time=Tue, Mar 21, 2023]
#### Javascript
```javascript=
function zeroFilledSubarray(nums) {
let countZero = 0;
let result = 0;
for (const num of nums) {
if (num === 0) {
countZero++;
} else {
countZero = 0;
}
result += countZero;
}
return result;
}
```
> [name=Marsgoat][time=Tue, Mar 21, 2023]
### Reference
[回到題目列表](https://hackmd.io/@Marsgoat/leetcode_every_day)