最新华为上机考试
真题目录:点击查看目录
华为OD面试真题精选:点击立即查看
2025华为od机试2025C卷-华为OD上机考试2025年C卷
题目描述
给定一个数组,里面有 6 个整数,求这个数组能够表示的最大 24 进制的时间是多少,输出这个时间,无法表示输出 invalid。
输入描述
输入为一个整数数组,数组内有六个整数。
输入整数数组长度为 6,不需要考虑其它长度,元素值为 0 或者正整数,6 个数字每个数字只能使用一次。
输出描述
输出为一个 24 进制格式的时间,或者字符串”invalid“。
示例1
输入
[0,2,3,0,5,6]
输出
23:56:00
解题思路
-
首先,读取输入数据,包括一个长度为6的整数数组。数组中的每个元素表示一个数字,范围为0到正整数。
-
使用深度优先搜索(DFS)算法遍历所有可能的数字组合。在DFS过程中,维护一个路径列表,用于存储当前的数字组合。同时,使用一个布尔数组来记录每个数字是否已经被使用。
-
当路径长度等于数组长度时,尝试生成一个时间字符串。将路径中的数字按顺序组合成一个格式为
HH:mm:ss的时间字符串。 -
使用
isValidTime函数检查生成的时间字符串是否有效。有效的时间字符串需要满足以下条件:- 小时(HH)的范围为0到23
- 分钟(mm)的范围为0到59
- 秒钟(ss)的范围为0到59
-
在DFS过程中,不断更新最大有效时间字符串。如果当前时间字符串有效且大于已找到的最大有效时间字符串,则更新最大有效时间字符串。
-
DFS遍历完成后,返回找到的最大有效时间字符串。如果没有找到有效的时间字符串,则输出"invalid"。
Java
def is_valid_time(hour, minute, second)
订阅专栏 解锁全文
190

被折叠的 条评论
为什么被折叠?



