网站首页 > java教程 正文
应聘者:什么?第一轮面试就是算法题?不应该先问问我的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(增删改查)。所以一个人的逻辑思维能力以及处理问题的方式很重要。
如果你遇见了这个题,你会比应聘者做的更好吗?
关注我,学习算法的不同解答
猜你喜欢
- 2025-05-02 Spring框架双核解析:IOC与AOP的本质与实战
- 2025-05-02 Go slice切片使用教程,一次通关!
- 2025-05-02 几经反转 谷歌胜诉后甲骨文能否接招?丨C位
- 2025-05-02 java组件HuTool相关工具类的使用二
- 2025-05-02 深入解析 Java 链表:从构建到逆序打印的技术之旅
- 2025-05-02 2023年Java基础面试题目收集整理归纳(持续更新)
- 2025-05-02 我的世界:末地烛的“奇妙”玩法?关于末地棒,你不知道的11件事
- 2025-05-02 程序员去大公司面试,Java岗大厂面试官常问的那些问题,进阶学习
- 2025-05-02 90%人踩过的坑!Java运算符优先级与类型转换的终极避坑指南!
- 2025-05-02 如何判断回文数?不要再将整数转为字符串来解决这个问题了
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)