华为OD统一考试 - 会议室占用时间
题目描述
现有若干个会议,所有会议共享一个会议室,用数组表示各个会议的开始时间和结束时间,格式为:
[[会议1开始时间, 会议1结束时间], [会议2开始时间, 会议2结束时间]]
请计算会议室占用时间段。
输入描述
第一行输入一个整数 n,表示会议数量
之后输入n行,每行两个整数,以空格分隔,分别表示会议开始时间,会议结束时间
输出描述
输出多行,每个两个整数,以空格分隔,分别表示会议室占用时间段开始和结束
备注
- 会议室个数范围:[1, 100]
- 会议室时间段:[1, 24]
用例
输入 |
4 1 4 2 5 7 9 14 18 |
输出 |
1 5 7 9 14 18 |
说明 |
输入:[[1,4],[2,5],[7,9],[14,18]] 输出:[[1,5],[7,9],[14,18]] 说明:时间段[1,4]和[2,5]重叠,合并为[1,5] |
输入 |
2 1 4 4 5 |
输出 |
1 5 |
说明 |
输入:[[1,4],[4,5]] 输出:[[1,5]] 说明:时间段[1,4]和[4,5]连续 |
题目解析
本题实际考试时为核心代码模式,非ACM模式,即无需处理输入输出。
本博客代码实现仍然以ACM模式处理,但是会将 "输入输出处理" 与 "核心代码" 分开,大家只看核心代码即可。
import Foundation func ODTest_2_48() { print("输入描述") print("第一行输入一个整数 n,表示会议数量") let n = Int(readLine() ?? "") ?? 0 print("之后输入n行,每行两个整数,以空格分隔,分别表示会议开始时间,会议结束时间") var roomTimes: [[Int]] = Array(repeating: Array(repeating: 0, count: 2), count: n) for i in 0 ..< n { let data = (readLine() ?? "").split(separator: " ").map { Int($0) ?? 0 } roomTimes[i][0] = data[0] roomTi
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
2024华为OD机试卷题 文章被收录于专栏
本专栏给大家提供了华为2024最新华为OD 题目汇总。华为OD机试刷题记录机考算法题库,帮助你上岸华为。提供C++/Java、JavaScript、Python四种语言的解法。