题目链接
英文链接:https://leetcode.com/problems/binary-subarrays-with-sum/
中文链接:https://leetcode-cn.com/problems/binary-subarrays-with-sum/
题目详述
在由若干 0 和 1 组成的数组 A 中,有多少个和为 S 的非空子数组。
示例:
1 | 输入:A = [1,0,1,0,1], S = 2 |
提示:
- A.length <= 30000
- 0 <= S <= A.length
- A[i] 为 0 或 1
题目详解
- LeetCode560-和为K的子数组 是本题的通解,可以直接套用。
- 对于这类与子数组和有关的问题,在很多时候,可以通过求前缀和做差来解答。
- 注意,一般在 0 位置要特殊处理。
1 | public class LeetCode_00930 { |
另外,由于数组元素只含 0 和 1,可以用一个数组作为哈希表。
1 | public class LeetCode_00930 { |