小张开了一家小小的咖啡店,他习惯于记录每天的盈利状况。 盈利记为正数,亏损则记为负数。 经过一段时间的经营,他收集了连续 N 天的经营数据。 为了评估不同时段的经营效益,小张设定了一个“目标利润区间” [L, R] 。 他现在想知道,在这 N 天里,有多少个连续的经营周期(例如,从第 i 天到第 j 天),其总利润恰好落在了他设定的目标区间内? 这个问题对小张来说有些复杂,您能编程帮他快速统计出结果吗?
第一行 : 一个整数 N ,代表记录的总天数。 ( 1 < N ≤ 10000 ) 第二行 : N 个整数,代表一个数组 P ,其中 P_i 表示第 i 天的利润或亏损。 ( -255 ≤ P_i ≤ 255 ) 第三行 : 两个整数 L 和 R ,用空格隔开,代表目标利润区间的左右边界。 ( -2550000 ≤ L ≤ R ≤ 2550000 )
一个整数,表示总利润在区间 [L, R] 内的连续经营周期的总数量。
4 1 -1 1 -1 0 0
4
3 -3 4 -2 -3 2
5
考点:前缀和
数据规模 N ≤ 1e4 | 限制 3 秒 / 512MB | 标准输入输出
推荐方向:前缀和
本题切入点
区间和落入 [L,R] 的计数:记前缀和 S,对每个右端点 i 统计满足 L ≤ S_i−S_j ≤ R 的 j 个数,即统计 S_j ∈ [S_i−R, S_i−L] 的个数,用有序结构/桶统计。
预处理前缀和数组,把「区间求和」从 O(n) 降到 O(1)。
思路框架(前缀和 通法 · 非本题专属)
实现要点:开 long long,避免 n 较大时求和溢出。
复杂度:时间 预处理 O(n),每次查询 O(1) | 空间 O(n)
该范式的通法易错点
对照本题
样例 1
4 / 1 -1 1 -1 / 0 04样例 2
3 / -3 4 -2 / -3 25解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2025年秋招-华为-12月17号开发岗。