leetcode 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 <= 10^5
  • -10^9 <= nums[i] <= 10^9

分析:遍历整个 nums 数组,一段连续的 0 能构成的全 0 子数组的个数为 (1+len)*len/2,其中 len 为连续的 0 的个数。

cpp 复制代码
long long zeroFilledSubarray(int* nums, int numsSize) {
    long long ans=0,len=0;
    for(int i=0;i<numsSize;++i)
    {
        if(!nums[i])len++;
        else ans+=(1+len)*len/2LL,len=0;
    }
    ans+=(1+len)*len/2LL;
    return ans;
}
相关推荐
alphaTao4 小时前
LeetCode 每日一题 2026/7/13-2026/7/19
算法·leetcode
Hesionberger15 小时前
LeetCode406:重建身高队列精髓解析
开发语言·数据结构·python·算法·leetcode
卡提西亚16 小时前
leetcode-239. 滑动窗口最大值
算法·leetcode·职场和发展
旖-旎16 小时前
LeetCode 494:目标和(动态规划/01背包问题)—— 题解
c++·算法·leetcode·动态规划·01背包
圣保罗的大教堂1 天前
leetcode 3867. 数对的最大公约数之和 中等
leetcode
To_OC1 天前
LC 15 三数之和:双指针不难,难的是把去重做对
javascript·算法·leetcode
G.O.G.O.G1 天前
LeetCode SQL 从入门到精通(MySQL)06(上)
数据库·sql·mysql·leetcode
闪电悠米1 天前
力扣hot100-56.合并区间-排序详解
数据结构·算法·leetcode·贪心算法·排序算法
卡提西亚1 天前
leetcode-1438. 绝对差不超过限制的最长连续子数组
算法·leetcode·职场和发展
Java面试题总结1 天前
LeetCode 93.复原IP地址
算法·leetcode·职场和发展·.net