编程问题面试攻略
一、面试中的编程问题概述
在编程相关的面试中,编码问题通常是核心部分,它是展示你能否胜任工作的机会。很多计算机和软件公司依靠这些问题来决定录用与否,不少公司的录用率低于 10%。这些问题一般难度较大,如果某个问题大家都能快速解答,公司就不会再问了。而且很多问题可能需要一小时才能解决,所以一时没思路很正常,几乎没人能立刻给出答案。有些问题就是为了考察你在没有立即找到解决方案时如何应对问题。
面试流程与场景
面试时,通常你会和面试官一对一交流。面试官会给你记号笔和白板(或者笔和纸),让你编写代码。一般在开始写之前,面试官会希望你先说说思路。你可能需要编写一个函数、方法,有时也可能是类定义或一系列相关的代码模块,形式可以是实际编程语言,也可以是伪代码。
问题特点
面试问题有特定要求,既要能快速解释和解决,又要有一定复杂度,不是所有人都能解答。所以不太可能出现现实中的实际问题,因为这类问题解释和解决都太耗时。很多问题需要使用一些技巧或编程语言中不常用的特性,还常常限制你使用常见方法或理想的数据结构。
例如,可能会有这样的问题:“编写一个函数,在不使用任何比较运算符的情况下判断两个整数是否相等。”这看似是个很傻的问题,因为几乎所有语言都有比较整数的方法,但如果你回答“这是个愚蠢的问题,我会一直用相等运算符,不会遇到这种问题”,那你就会不及格。面试官是想考察你用不同的方式来比较整数(提示:可以尝试使用位运算符)。遇到这类问题,你可以先说明更好的解决办法,但还是要按照要求去解答。比如被要求用哈希表解决问题,你可以说:“用二叉搜索树会很容易,因为提取最大元素更方便,但我来看看如何用哈希表解决……”
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



