来编个程吧
有些公司没有统一笔试环节,会直接进入面试,一般跟你约好时间后上来就是一道算法题。这种算法题其实就是和笔试环节中的编程题一样的:有结合实际的题目描述,需要考虑输入输出,需要通过所有测试cases。我把这种类型算法题叫做应用题,其实就是把笔试环节和面试放一起了,直接截一道笔试里的题目来考你。给你半小时来做一道题,写不出来直接over,不会进入自我介绍、项目介绍、基础知识点考察环节。
本章的所有编程题并不是上面那种类型,而是面试官在面你的过程中,自己手动敲在问题区的题目。往往仅需要考虑面试官敲出来的一个或几个示例,他给的示例能通过就行。输入输出的话也没有很严格的限制,直接把示例作为参数传入就行。
这种编程题相对而言是很宽松的。面试官在你敲代码的过程中会给你许多提示,你要是一时半会没思路,他也会提示你。甚至在我说我能用JAVA写吗JS的某些语法不熟悉时,面试官直接就说没事你就用JS写,语法不会的我告诉你。有时候就算你写的程序跑不起来,如果整体思路OK那也可能给你算过。
可见,后一种编程题更考验面试者的思路和算法基本功(基本上都是最最最基本的算法题,不像应用题那样尽是花里胡哨的包装和变形,想方设法不让你看出本质算法),以及总是会结合一些岗位相关的技能、知识点来命题。
本章记录的12道题目中,我在面试中遇到的有:
- 归并&快速排序
- 防抖和节流
- 全排列
- N数之和
- 实现promiseAll
- 数组和对象的深拷贝
- 金钱格式化
- 二叉树路径总和