昨晚接到的电话面试



昨晚接到一位老师的电话面试,这是我第一个计算机方面的面试,总的来说,是比较失败的。我事先跟老师说明过我是零基础跨专业考生,但是老师还是还不留情地问了我很多专业问题,大概有六道题,如下:

1.如何将一个字符串反转,空间复杂度为O(1),时间复杂度为O(n)。

这个很容易,前后交换就好了。

2.如何将一个句子反转,只反转单词顺序,单词内部不变,复杂度要求同上。

这个我当时没答出来,在网上搜了搜,貌似可以这样做:将这个句子字符串循环右移,将最后一个字符移到第一个,直到遇到第一个空格,最后一个单词即移动到了第一个位置,然后用同样的方法把剩下的单词换位,直到第一个单词到了最后一个位置。

3.如何用O(1)的时间复杂度求数组里任意两个元素之间的所有元素和。

老师看我上个问题没答上来,又问了一个简单问题,这个可以预处理求出前i项和,需要的时候用对应的i项和相减即可。

4.如何找出数组中唯一一个没有重复出现的数,其他的数都出现过两次。

老师再次提高难度,我只想到了用hash,但是老师说空间复杂度太高,有没有更简单的办法,我没答上来。看到网上的做法是用与或运算,重复出现的都变成了0,具体操作方法有待我深入学习。

5.概率问题,投篮命中率的几何分布问题,求期望。这个完全是考我的数学基础,过关。

6.继续概率问题,已知一个函数随机返回1或0,返回1的概率是p,p未知,让我利用这个函数设计一个函数以等概率返回1或0。

这个完全不会,技术面到此结束。百度一下,找到了比较合适的答案,见博客http://blog.csdn.net/hackbuteer1/article/details/7486748

六对三的结果让我比较沮丧,而且可能老师其实并没有出更难的题。希望复试面试不要出现这样的情况,否则,我跪定了。。。




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值