想要应聘机器学习算法工程师
刷题:剑指offer
现在看一些面试方面的问题
《程序员面试攻略》
目录
前言
沟通能力、程序设计是最主要的两个方面
1求职之前
了解自己、了解市场、掌握市场需要的技能、处理自己的在线资料
管理、架构、开源项目、测试、界面等不同的工作类型
学位、竞赛、分数(尤其是数学)、实习生
在线资料整理(如:博客)
2求职过程
准备越充分、成功机会越大
寻找公司并联系
筛选面试(电话面、招聘现场)、现场面试(考官非常重要)
衣着:不用太正式、也不能随意
电子设备关掉、严肃面试
尊重招聘者,但不要被友好欺骗
报酬要慎重:薪资、奖金、股票期权(薪资协商)
猪会变胖,但像猪一样贪得无厌的人会被屠杀。Pigs get fat,but hogs get slaughtered.
3编程问题的解答思路
3.1面试过程
题目可能会比较难,需要一个小时才能解决,没有人能够马上找到答案。
有些问题就是想看看您在不能立即找到解决方案时如何处理。
给出代码前,先对问题分析和说明。
问题通常禁止使用最常用的方式来完成
“判断两个整数是否相等,不能使用运算符” (使用位操作符)
哈希表
编程语言:可能会指定用某一门
要互动:不光看代码写的多好,还要看您是怎么解决问题的
3.2解决问题
1、确保理解问题
2、尝试一个例子
3、算法(时间长、需要更多的例子、与考官互动)
4、确定算法,在实现前向考官解释该方案(可能考官会提示这是不好的)
5、编码时进行解释,有问题询问
6、写完代码后,用例子走一遍,确保正确性
7、对出错情况、特殊情况、边界条件进行检查
8、完成后可能被问问题:运行时间、复杂度、其他时间
9、卡住时,要积极思考、回顾例子、尝试不同数据结构,
10、过多行代码,可能弄错了方向
3.3分析解决方案
实现的效率
与其他方案的比较
时间复杂度(运行时间)、空间复杂度
递归