前言说明
算法学习,日常刷题记录。
题目连接
题目内容
给你一个二元数组nums,和一个整数goal,请你统计并返回有多少个和为goal的非空子数组。
子数组是数组的一段连续部分。
示例1:
输入:nums = [1,0,1,0,1], goal = 2
输出:4
解释:
如下面所示,有4个满足题目要求的子数组:
[1,0,1,0,1],1-2-3
[1,0,1,0,1],1-2-3-4
[1,0,1,0,1],2-3-4-5
[1,0,1,0,1],3-4-5
示例2:
输入:nums = [0,0,0,0,0], goal = 0
输出:15
提示:
1 <= nums.length <= 3 * 10^4
nums[i]不是0就是1
0 <= goal <= nums.length
分析过程
定义集合map,保存前缀和的数量。
定义二元子数