


























2026 华为OD机试真题 4月26日华为OD上机新系统考试真题 100 分题型
点击查看华为 OD 机试真题完整目录:2026最新华为OD机试新系统卷 + 双机位C卷 真题题库目录|全覆盖题库 + 逐点算法考点详解
新研发了一台游戏设备可以面向用户接受试玩。现有 n 个试玩申请,每个试玩有开始时间和结束时间。作为协调员,为了能让更多人体验到游戏,你需要对试玩申请进行选择,使得:
任意两个被选中的试玩时间不重叠。
任意两个被选中的试玩时间允许连续,例如 [2,3] 和 [3,4] 认为是可以都被安排的。
被安排的试玩数量最大化。
请问最多能安排多少场试玩?
2026 华为OD机试真题 4月26日华为OD上机新系统考试真题 100 分题型
第一行:一个整数 n ($1 \le n \le 10^5$),表示试玩申请数量。
第二行:是一个长度为 n 的数组,数组的每个元素为两个整数 start 和 end ($0 \le start \le end \le 10^9$),表示试玩的开始和结束时间。数组每个元素以空格分割,元素内部中 start 和 end 使用逗号分割。
一个整数,表示最多能安排的试玩数量。
输入
3
1,5 2,3 4,6
输出
2
说明
选择[2,3]和[4,6],共2位
输入
5
1,2 3,4 5,6 7,8 9,10
输出
5
说明
5个试玩申请时间都不重合,可同时满足
输入
1
1,5
输出
1
说明
只有一个试玩请求,可以直接安排。
输入
3
1,5 2,4 3,6
输出
1
说明
所有试玩时间相互都冲突,只能安排一场。
本题是一个经典的区间调度问题(Activity Selection Problem),通常使用贪心算法求解。 目标是从给定的 $n$ 个区间中,选出尽可能多的互不重叠的区间。
核心思想: 为了能够安排更多的试玩,我们需要优先安排那些结束时间早的试玩,这样能为后面的试玩留出更多的时间。 具体步骤如下:
current_end(初始值为 -1)。遍历排序后的申请:
current_end,说明它与之前安排的试玩不冲突(题目允许连续时间,例如 [2,3] 和 [3,4] 可以同时安排)。current_end 为当前试玩的结束时间。复杂度分析:
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。