华为2022春招一面

#华为2022春招面试#
3.23晚上七点笔试的,笔试平台是华为自研的,为什么说自研的呢,因为域名是XXX.huawei.com/……
笔试体验刚开始可以说非常不好,应该是因为人多,我进笔试界面用了半个小时,因为一直出不来界面,我又不敢一直刷新,真不是我笨啊,去年秋招做了30多家的笔试题,不得不说,牛客的笔试体验相对是最好的。
看到题目之后,一共三道题600分,100,200,300这样子,题目出的有点长,理解题目比较费时,可能我比较笨,第一题感觉是没有题目加上例子都没有描述清楚,总是25%通过率,到八点的时候,不死磕第一题了。先看了第二题,也是理解起来比较费劲,索性不是太难,85%通过率,第三题感觉是dp,自己直接打印了例子的输出,20%通过率。
昨天3.31收到了面试邀约,约的今天下午三点半,我下午两点的时候,收到了短信说是我前一名面试者已经开始面试了,让我点击链接进入等候,我看了界面,下载安装了wemeet,之后我就等啊等啊,链接界面说我排在第一位大概要等45分钟,结果等到了三点四十多的时候,这个时候已经非常不紧张了,都有点烦了,收到了电话让我通过wemeet进入面试。

一开始,就让我共享屏幕,要看我大二暑假做的项目,可能因为我去年11月份到今年2月份有实习经历,然后简历上还有大二暑假的项目。项目中挑了几个问题和bug,当时刚学springboot呢,有种被指出小学错题的感觉。
之后问了常用的数据结构,说了ArrayList、linkedlist、set、map、

最后给了一道题:
以下是某停车场的车辆进入和停留时间记录:
* A6709 2021-01-02 1
* A6702 2021-03-07 10
* A6705 2021-02-10 5
* A6709 2021-02-11 6
*
* 请统计某一个月份,比如2月份的排名前三车牌数据:
* 1、停留总时间长的排在前面
* 2、如果总时间长一样,则停车次数多的排在前面
* 3、如果上述情况都相同,则按照车牌号进行排序
刚开始以为要用SQL,结果是java直接做
当时时间比较紧,代码写了一半,被面试官打断了,没有想到很好的存储结构,就连忙说了思路,
然后面试就结束了,也没有反问环节,好奇怪,
以为挂了呢,结果不一会收到了一面通过等待二面的短信。

总的来说,这次面试比较基础吧,我都看了挺长时间的八股了,结果没有往深了问。

自己后来勉勉强强把那道题给整出来了,代码如下:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;


public class Main {
    /**
     * 以下是某停车场的车辆进入和停留时间记录:
     * A6709 2021-01-02 1
     * A6702 2021-03-07 10
     * A6705 2021-02-10 5
     * A6709 2021-02-11 6
     *
     * 请统计某一个月份,比如2月份的排名前三车牌数据:
     * 1、停留总时间长的排在前面
     * 2、如果总时间长一样,则停车次数多的排在前面
     * 3、如果上述情况都相同,则按照车牌号进行排序
     * @param args
     */
    public static void main(String[] args) throws ParseException {
        Car c1 = new Car("A6709", LocalDate.parse("2021-02-02"), 1);
        Car c2 = new Car("A6702", LocalDate.parse("2021-03-07"), 10);
        Car c3 = new Car("A6705", LocalDate.parse("2021-02-10"), 5);
        Car c4 = new Car("A6709", LocalDate.parse("2021-02-11"), 6);
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Date parse = simpleDateFormat.parse("2021-01-02");
        int monthValue = c1.getDate().getMonthValue();
        LocalDate date = LocalDate.parse("2021-01-02");
        ArrayList<Car> cars = new ArrayList<>();
        cars.add(c1);
        cars.add(c2);
        cars.add(c3);
        cars.add(c4);

        List<Car> filteredCars = cars.stream().filter(car -> car.getDate().getMonthValue() == 2).toList();


        HashMap<String, Object[]> map = new HashMap<>();
        for (Car car : filteredCars) {
            if (!map.containsKey(car.getPlate())) {
                map.put(car.getPlate(), new Object[]{car.getPlate(), 1, car.getStayTime()});

            } else {
                Object[] objects = map.get(car.getPlate());
                map.put((String) objects[0], new Object[]{car.getPlate(), (Integer)objects[1] + 1, (Integer)objects[2] + car.getStayTime()});
            }
        }
        Collection<Object[]> values = map.values();
        List<Object[]> collect = values.stream().sorted((o1, o2) -> {
            String strings = (String) o1[0];
            Integer count = (Integer) o1[1];
            Integer sum = (Integer) o1[2];

            String strings2 = (String) o2[0];
            Integer count2 = (Integer) o2[1];
            Integer sum2 = (Integer) o2[2];
            if (sum == sum2 && count2 == count) {
                return -strings.compareTo(strings2);
            } else if (sum == sum2) {
                return count2 - count;
            } else {
                return sum2 - sum;
            }
        }).toList();

        for (Object[] objects : collect) {
            System.out.println(objects[0] + "\t" + objects[1] + "\t" + objects[2]);
        }

    }
}
class Car implements Comparable{
    private String plate;
    private LocalDate date;
    private int stayTime = 0;
    private int count = 0;

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public Car(String plate, LocalDate date, int stayTime) {
        this.plate = plate;
        this.date = date;
        this.stayTime = stayTime;
    }



    public String getPlate() {
        return plate;
    }

    public void setPlate(String plate) {
        this.plate = plate;
    }

    public LocalDate getDate() {
        return date;
    }

    public void setDate(LocalDate date) {
        this.date = date;
    }

    public int getStayTime() {
        return stayTime;
    }

    public void setStayTime(int stayTime) {
        this.stayTime += stayTime;
    } @Override public int compareTo(Object o) {
        return 1;
    }
}
#华为面试##春招##笔试题目##面经#
全部评论
为啥感觉和其他面经不一样😅 面试官还要共享屏幕看项目? 出的编程题也不常见,感觉好复杂... 同学你面试的是什么部门啊?
点赞 回复
分享
发布于 2022-04-02 23:43
老哥你面的是集团IT么?
点赞 回复
分享
发布于 2022-04-04 16:51
滴滴
校招火热招聘中
官网直投
老哥现在啥状态,面完了吗
点赞 回复
分享
发布于 2022-04-05 13:53
老哥你是研究生吗
点赞 回复
分享
发布于 2022-04-05 14:08

相关推荐

4 11 评论
分享
牛客网
牛客企业服务