和为 K 的子数组
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
和为 K 的子数组
题目描述
给定一个整数数组 和一个整数 ,请你统计并返回该数组中和为 的连续非空子数组的个数。
子数组定义为数组中元素的连续非空序列。
输入格式
第一行两个整数 和 ,分别表示数组的长度和目标和。
第二行 个整数,表示数组 的元素。
输出格式
一行一个整数,表示满足条件的子数组的个数。
样例 #1
样例输入 #1
3 2
1 1 1
样例输出 #1
2
样例解释 #1
满足条件的子数组有两个:
- 第 1 个和第 2 个元素组成的子数组 ,和为
- 第 2 个和第 3 个元素组成的子数组 ,和为
样例 #2
样例输入 #2
4 3
1 2 3 0
样例输出 #2
3
样例解释 #2
满足条件的子数组有三个:
- ,和为
- ,和为
- ,和为
提示
数据范围与约定
- 对于 的数据,保证:
算法提示
- 暴力枚举法:枚举所有子数组的起点和终点,计算和并统计。时间复杂度 ,无法通过全部测试点。
- 前缀和 + 哈希表优化(推荐):