大家好,又见面了,我是你们的朋友全栈君。
前言
今天分享一下自己面试的时候遇到的写面试题的经验分享。在面试的时候,分为视频面试和现场面试,接下来讲解着两部分。
视频面试
在我和我周围的同学参加过的公司里面,不在现场的面试会分为电话面试与视频面试;
电话面试的时候,电话面试大多数情况下都是让你去讲一下一个编程题的思路,你用语言描述出来就行,少部分情况也会可能突然让你打开电脑去开始视频面试看你写代码。
视频面试的话是肯定会让你写代码,这个不要抱着侥幸心理,放心,该来的还是会来。
其中视频面试写代码一种是牛客网,一种是远程桌面共享(PS:如果你有两个屏幕,扩展屏幕,那么接入对方的视频面试的时候会让你选择共享哪一个屏幕)
牛客网视频面试
这里我收藏了一个牛客网的链接,还可以使用,需要的朋友可以自己去体会一下。
https://interview.nowcoder.com/interview/111930/interviewee?code=HubO&testDone=true#userCode
大体是下图这个样子,是可以在线运行的,所以你得自己去写测试用例,自己写的测试用例如果对了的话,然后给面试官讲一下你的思路就完事了。
这里给一个示例,测试用例就是find方法的输入,可以修改target不同的值,也就是第5行来当做不能的测试用例,下图是一个二分查找,对于3的话应该输出是true才对,你把这个代码写好,然后点击提交运行就可以得到输出结果,上面的房间已经用过了,无法修改代码了。
1public class Main { 2 public static void main(String [] args) 3 { 4 int [] nums = {1,2,3,5,7,9,11}; 5 System.out.println(find(nums,3)); 6 } 7 public static boolean find(int [] nums,int target) 8 { 9 if(nums.length == 0)10 return false;11 int left = 0;12 int right = nums.length-1;13 while (left<=right)14 {15 int mid = left + (right -left) / 2;16 if(nums[mid] == target)17 {18 return true;19 }else if(nums[mid] > target)20 {21 right = mid - 1;22 }else {23 left = mid + 1;24 }25 }26 return false;27 }28}
远程桌面共享
另一种形式是远程桌面共享,面试官会让你在自己的电脑上打开自己熟悉的编程工具去写代码,写好以后,你自己写好向上述的测试用例,然后运行输出了正确的结果继续。
现场面试
现场面试一般都是给你一张白纸,然后让你手写代码,一般如果给出的是《剑指offer》的题目,你只需要写一个方法就行,不用向视频面试那样,不必写输入输出。
你写完以后,面试官会拿你的代码,然后让你讲思路,然后面试官会自己想一个测试用例,来用用脑子跑一下你的代码,你的代码应该首先看上去没有明显的错误,然后是思路正确,就可以了。
结束语
面试中我和我周围的同学遇到的手写代码的情况就是这么多,其它还真没有遇见过,如果还有其他形式欢迎各位告知,至于如何把代码手写出来,那么就是需要练习了,我剑指offer的题目就把牛客网上的完完整整地刷了两遍,基本都能写出来,这就是我的经验,希望对你有帮助。
END
推荐阅读
扫一扫
有福利
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/146005.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...