6.3华为OD机试真题 新系统 - 统计盈利目标区间  (JavaPyCC++JsGo) 统计盈利目标区间2026 华为OD机试真题 6月3日华为OD上机新系统考试真题 100 分题型点击查看华为 OD 机试真题完整目录2026最新华为OD机试新系统卷 双机位C卷 真题题库目录全覆盖题库 逐点算法考点详解题目描述某公司的财务流水系统重构为实时流处理架构。日盈利数据可正可负作为消息一条条实时推送。 请设计一个实时监控模块它接收两个序列操作指令序列 ops 和对应的参数序列 vals。当 ops[i] add 时代表接收一条新的日盈利流数据其值为 vals[i]。当 ops[i] query 时代表发起一次实时查询目标值为 vals[i]即 target。要求立刻返回以当前最新到达的这笔流水为区间右端点且区间总和恰好等于 target 的连续区间个数。2026 华为OD机试真题 6月3日华为OD上机新系统考试真题 100 分题型点击查看华为 OD 机试真题完整目录2026最新华为OD机试新系统卷 双机位C卷 真题题库目录全覆盖题库 逐点算法考点详解输入描述ops字符串数组表示操作指令序列。vals整型数组表示与 ops 一一对应的参数序列。对于 add 指令代表盈利值对于 query 指令代表目标值 target。输出描述返回一个整型数组按照 query 指令出现的顺序依次保存每次查询的结果如果没有 query 返回空数组如果 query 没有符合条件的区间返回 0约束条件ops 中仅包含 add 和 query ops.length105−104values[i]104当操作作为add$−109values[i]109 当操作作为 query用例的输入都是合法的示例1输入add,add,query,add,query 1,2,3,3,6输出[1,1]说明add 1流为 [1]add 2流为 [1,2]query 3最新数据是 2。以 2 结尾且和为 3 的区间只有 [1,2]返回 1。add 3流为 [1,2,3]query 6最新数据是 3。以 3 结尾且和为 6 的区间只有 [1,2,3]返回 1。示例2输入add,add,add,query,add,add,query 1,-1,0,0,1,-1,0输出[2,3]说明前三次 add 后流为 [1,−1,0]。第一个 query 0以最新元素 0 结尾和为 0 的区间有 [0] 和 [1,−1,0]返回 2 。后两次 add 后流为 [1,−1,0,1,−1]。第二个 query 0以最新元素 −1 结尾和为 0 的区间有 [1,−1]、[0,1,−1]、[1,−1,0,1,−1]返回 3。解题思路本题本质上是在一个动态增长的数组中查询“以最后一个元素结尾、且区间和为目标值”的连续区间数量。前缀和设current_prefix_sum为截止到当前所有add数据的累计和。哈希表计数维护一个哈希表prefix_sum_count键是某个历史前缀和值值是该前缀和出现的次数。关键转换当我们想找区间和为target的区间时若当前前缀和为S则需要找到一个左端点前一位的前缀和S - target。算法流程add val先将当前current_prefix_sum记录到prefix_sum_count中因为它是新区间左端点的前一位然后更新current_prefix_sum val。query target直接查询prefix_sum_count[S - target]的值即可。复杂度分析时间复杂度每次操作add 或 query都是 O(1) 的哈希表操作整体为 O(N)其中 N 为 ops 数组长度。空间复杂度最坏情况下需要存储 N 个不同的前缀和值为