华为OD机试真题-异常的打卡记录 【2023.Q1】

题目描述

公司对员工的手机打卡记录进行异常排查。如果出现以下两种情况之一,则认为打卡异常
1.实际设备号与注册设备号不一样
2.同一个员工的两个打卡记录的时间小于60分钟并且打卡距离超过5km。
给定打卡记录的字符串数组clockRecords (每个打卡记录组成为: 工号:时间 (分钟);打距离(km);实际设备号;注册设备号),返回其中异常的打卡记录
输入
2
100000,10,1,ABCD,ABCD
100000,50,10,ABCD,ABCD
输出
100000,10,1,ABCD,ABCD;100000,50,10,ABCD,ABCD

解题思路

将打卡记录转换为Record对象,并判断实际设备号与注册设备号是否相同。如果不相同,将记录标记为异常。
比较打卡记录之间的时间和距离:遍历所有打卡记录,如果同一个员工有2条打卡记录,比较它们之间的时间差和距离差。如果时间差小于60分钟,且距离差大于5公里,将这两条记录标记为异常。

参考代码

import java.util.ArrayList;

你可能感兴趣的:(Python,JS),算法,java,开发语言,华为机试,面试)