新颖有创意的面试题目锦集
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
新颖有创意的面试题目锦集
一、异或思维
1.1 在成对存在的数组中(即数组中的每个数必然存在另一个与其值相等的一个数),被程序员误插入了一个数(即该数在这个数组中唯一),如何找出这个数?
答案:将所有数化为二进制,做异或。
1.2 在成对存在的数组中(即数组中的每个数必然存在另一个与其值相等的一个数),被程序员误插入了两个数(即这两个数在这个数组中都是唯一),如何找出这两个数?
答案:异或所有数,所得结果相当于混入的这两个数的异或,取其不为0的某一位,按照这一位将数组元素分成两组(一组为0,一组为1),两组组内异或,分别得到这两个数。
二、数组相关
2.1 给定一个数组a[],一次遍历在其中找出最大(最小)的元素。答案:冒泡排序。
2.2 给定一个数组a[],找出其中某两个数的和等于给定的一个数M。答案:首先快排(从小到大),然后头尾两个指针,若头尾指向的数之和大于M,尾指针减减,否则头指针加加。
2.3 给定一个数组a[],在其中找k个数(k>=2),使得其和等于给定的一个数M,没有返回false。
答案:动态规划-01背包问题。
三、过桥问题
3.1 四人过桥问题:速度设为v1,v2,v3,v4,满足v1>v2>v3>v4单独过河时间满足:t1< t2 < t3 < t4,此时正在下雨,四人只有一把伞,于是两人共有一把伞过河,过桥速度以最慢的为主,过河后需要其中一个送伞回去,问如何安排过河时间最短?
答案:方案一:正常思维会认为v1速度最快,让他每次回头送伞最合适,于是v1分别与其他人过河再回头送伞,总时间:t2+t3+t4+2*t1。
方案二:考虑到v1>v2>>>v3>v4(即v1、v2远远大于v3、v4),可以让v1、v2先过河,v1回头送伞,v3、v4一起过河,v2回头送伞,然后v1、v2再过河,
总时间:t2+t1+t4+t2+t2。综合考虑,本题回答动态规划为最佳答案。
四、随机问题
4.1 存在函数A()可以产生0~9 的随机数,且等概率的产生每个随机数,现在需要编写一个函数B(),使得产生数字1、2、3的概率为0.2,数字4的概率为0.4。