Leetcode 2348. 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 <= 105
-109 <= nums[i] <= 109
最终祭出了数学公式,,,当有连续n个0的时候,判断有多少个组合,就是n*(n+1)/2,然后累加,
因为最后一个可能算不到,因为最后一位可能还是0,所以结束for循环的时候,还要加一下判断。确认此时cnt是否为0,不为0,还要加cnt*(cnt+1)/2;
最后返回结果即可。
Runtime: 6 ms, faster than 34.17% of Java online submissions for Number of Zero-Filled Subarrays.
Memory Usage: 60.2 MB, less than 20.69% of Java online submissions for Number of Zero-Filled Subarrays.