Skip to content

Latest commit

 

History

History
58 lines (49 loc) · 1.38 KB

File metadata and controls

58 lines (49 loc) · 1.38 KB

2348. 全 0 子数组的数目

给你一个整数数组 nums ,返回全部为 0子数组 数目。

子数组 是一个数组中一段连续非空元素组成的序列。

示例 1:

输入: nums = [1,3,0,0,2,0,0,4]
输出: 6
解释:
子数组 [0] 出现了 4 次。
子数组 [0,0] 出现了 2 次。
不存在长度大于 2 的全 0 子数组,所以我们返回 6 。

示例 2:

输入: nums = [0,0,0,2,0,0]
输出: 9
解释:
子数组 [0] 出现了 5 次。
子数组 [0,0] 出现了 3 次。
子数组 [0,0,0] 出现了 1 次。
不存在长度大于 3 的全 0 子数组,所以我们返回 9 。

示例 3:

输入: nums = [2,10,2019]
输出: 0
解释: 没有全 0 子数组,所以我们返回 0 。

提示:

  • 1 <= nums.length <= 105
  • -109 <= nums[i] <= 109

题解 (Rust)

1. 题解

impl Solution {
    pub fn zero_filled_subarray(nums: Vec<i32>) -> i64 {
        let mut count = 0;
        let mut ret = 0;

        for i in 0..nums.len() {
            count += 1;
            if nums[i] != 0 {
                count = 0;
            }
            ret += count;
        }

        ret
    }
}