专业的JAVA编程教程与资源

网站首页 > java教程 正文

应聘者:什么,第一轮面试就用这么简单的算法题?

temp10 2025-05-02 21:12:09 java教程 6 ℃ 0 评论

应聘者:什么?第一轮面试就是算法题?不应该先问问我的Java语言相关的问题么?

面试官:不用,你先纯手写一个整数反转的代码吧!时间限制30分钟。现在计时开始。

应聘者:什么,第一轮面试就用这么简单的算法题?

应聘者:不用30分钟,5分钟我就可以写完,你稍等我一下。

三分钟过去了。

应聘者:面试官你好,我写完了,请你过目。

面试官:拿过做好的题目,看了一会说。嗯,你这个字写的真的差,但是呢。你的能力比我想象中要厉害一些。你没有使用字符串反转的方式,让我刮目相看,不过你觉得你做的这个答案有什么问题没有?给你两分钟时间考虑。

应聘者:嘿嘿,我想了一下,既然这么简单的问题,如果用字符串反转的方式来解答的话,不是太简单儿戏了吗?所以我就没有使用字符串反转的方式。至于你说的答案有问题,让我看一下。应聘者思考了几秒钟!不好意思,我上面定义的是long类型,方法返回值定义的却是int,编译的时候会报错。我太急功近利了。不好意思,我改一下。(应聘者顺手拿起笔就更改了,心里在纳闷,我为什么会定义long类型呢?)

    public static int reverse1(int num) {
        long n = 0;
        while(num != 0) {
            n = n*10 + x%10;
            num/= 10;
        }
        return (int)n;
    }

面试官:嗯, 你能够发现这个问题。证明你还是有点编程基础,那么还有一个问题你能找出来吗?再给你三分钟时间。

应聘者心里默默想着,难道是long的类型引发的一系列问题?

时间过去了两分钟,应聘者心里一亮。

面试官:想到是什么问题了吗?

应聘者胸有成竹的说,我知道了,整数反转有可能会越界,比如num为数字“-2147483648“,这就是我上面为什么定义一个n为long类型了。因为越界就会抛异常,那么在异常的时候我就返回一个数字0吧!然后拿起笔,在答卷上面快速的更改过来了。

面试官看了更改之后的答案,嗯。你的答案我很满意,对你的解题思路我也很满意,这个算法解决整数反转的问题效率很高,恭喜你通过了我司的初面。希望你再接再厉,通过后面的几轮面试,期待跟你成为同事,你在这里等一下。。。。

应聘者心里窃喜,还好我最近在今日头条上跟着@蜜蜂攻城狮学习算法,刚好讲过这一题。

结语

以上内容来自于我的一个粉丝面试的真实经历,现在很多互联网公司都喜欢用简单的算法题来作为第一轮面试题。

我猜想用简单的算法题的原因就是考察一个人的思维逻辑,因为很多公司招初级中级的开发工程师都是去写CRUD(增删改查)。所以一个人的逻辑思维能力以及处理问题的方式很重要。

如果你遇见了这个题,你会比应聘者做的更好吗?

关注我,学习算法的不同解答

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表