大华提前批Java,笔试编程题,路口抓拍问题

大华提前批,笔试题
beginAddress是开始抓拍路口编码,endAddress是结束抓拍路口编码,
shootCars是所有抓拍路口抓拍车辆信息(每个车辆在每个路口仅被抓拍1次) ;求路段平均旅行时间 (单位:分钟),结果保留两位小数。

当时笔试,没有做出来,后面想了一下,这么写了,网上也没有固定的答案,不知道对不对,还请各位大佬给看看!听说大华实习也是出的这道题
public class shootCar {
    private int adrId;
    private String carNum;
    private Date shootTime;

}
public class ShootCarService{
    public float getAvgTravel(int beginAddress, int endAddress, List<shootCar> shootCars) {
        HashMap<String, Long> map = new HashMap<>();
        // 所有经过[开始抓拍,结束抓拍]的车辆时间总和
        long travelTime = 0;
        // 经过抓拍路段的车辆数目
        int carNums = 0;
        for (shootCar car : shootCars) {
            // Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT
            long time = car.shootTime.getTime();    // 毫秒-》秒=1000,再除60是分钟
            System.out.println(car.carNum + "," + car.shootTime + "," + time);
            // 车辆进入抓拍路段,放入map
            if (car.adrId == beginAddress) {
                map.put(car.carNum, time);
            }
            // 车辆驶离抓拍路段
            else if (car.adrId == endAddress) {
                // 车辆走完了抓完路段,即进入开始抓拍、驶离结束抓拍
                if (map.containsKey(car.carNum)) {
                    travelTime = (time - map.get(car.carNum)) / 60000;
                    carNums += 1;
                }
            }
        }
        return (int) (travelTime / carNums * 100)/ 100;
    }
}


#笔试题目##浙江大华技术股份有限公司#
全部评论
没毛病
2 回复 分享
发布于 2021-07-15 10:12
大佬666!
点赞 回复 分享
发布于 2021-07-05 16:31
想问下笔试需要开摄像头吗?多长时间作答呀?题型是单选多选简答编程这样?谢谢
点赞 回复 分享
发布于 2021-07-09 10:03
time - map.get(car.carNum) lz这个是什么意思啊,time和map.get(cat.catNum)不是同一个值吗?代表汽车在拍摄路段的行驶时间
点赞 回复 分享
发布于 2021-07-16 17:35

相关推荐

喜欢吃蛋糕仰泳鲈鱼是我的神:字节可以找个hr 给你挂了,再放池子捞
点赞 评论 收藏
分享
评论
4
12
分享
牛客网
牛客企业服务