面试题

来源:互联网 发布:怎样给淘宝客服发图片 编辑:程序博客网 时间:2024/06/10 09:01

1、A、B两人分别在两座岛上。
B生病了,A有B所需要的药。
C有一艘小船和一个可以上锁的箱子。
C愿意在A和B之间运东西,但东西只能放在箱子里。只要箱子没被上锁,C都会偷走箱子里的东西,不管箱子里有什么。
如果A和B各自有一把锁和只能开自己那把锁的钥匙,A应该如何把东西安全递交给B?

答案:A把药放进箱子,用自己的锁把箱子锁上。B拿到箱子后,再在箱子上加一把自己的锁。箱子运回A后,A取下自己的锁。箱子再运到B手中时,B取下自己的锁,获得药物。

2、有一个软件公司,
1/2的人是系统分析员,
2/5的人是软件工程师,
有1/4的人两者都是,
问有多少人两者都不是?

答案:1 – 1/2 –2/5 + 1/4= 0.35

3、有25匹马,速度都不同,但每匹马的速度都是定值。现在只有5条赛道,无法计时,即每赛一场最多只能知道5匹马的相对快慢。问最少赛几场可以找出25匹马中速度最快的前3名?(百度2008年面试题)

答案:每匹马都至少要有一次参赛的机会,所以25匹马分成5组,一开始的这5场比赛是免不了的。接下来要找冠军也很容易,每一组的冠军在一起赛一场就行了(第6场)。最后就是要找第2和第3名。我们按照第6场比赛中得到的名次依次把它们在前5场比赛中所在的组命名为A、B、C、D、E。即:A组的冠军是第6场的第1名,B组的冠军是第6场的第2名……每一组的5匹马按照他们已经赛出的成绩从快到慢编号:

A组:1,2,3,4,5 B组:1,2,3,4,5 C组:1,2,3,4,5 D组:1,2,3,4,5 E组:1,2,3,4,5

A组:1,2,3
B组:1,2
C组:1

从现在所得到的信息,我们可以知道哪些马已经被排除在3名以外。只要已经能确定有3匹或3匹以上的马比这匹马快,那么它就已经被淘汰了。可以看到,只有上表中粗体蓝色的那5匹马才有可能为2、3名的。即:A组的2、3名;B组的1、2名,C组的第1名。取这5匹马进行第7场比赛,第7场比赛的前两名就是25匹马中的2、3名。故一共最少要赛7场。

4、考虑一个双人游戏。游戏在一个圆桌上进行。每个游戏者都有足够多的硬币。他们需要在桌子上轮流放置硬币,每次必需且只能放置一枚硬币,要求硬币完全置于桌面内(不能有一部分悬在桌子外面),并且不能与原来放过的硬币重叠。谁没有地方放置新的硬币,谁就输了。游戏的先行者还是后行者有必胜策略?这种策略是什么?

答案:先行者在桌子中心放置一枚硬币,以后的硬币总是放在与后行者刚才放的地方相对称的位置。这样,只要后行者能放,先行者一定也有地方放。先行者必胜。

5、一个矩形蛋糕,蛋糕内部有一块矩形的空洞。只用一刀,如何将蛋糕切成大小相等的两块?

答案:注意到平分矩形面积的线都经过矩形的中心。过大矩形和空心矩形各自的中心画一条线,这条线显然把两个矩形都分成了一半,它们的差当然也是相等的。


一般涉及到web开发会涉及到cookie和session,如果项目中有涉及到这两块,面试官可以根据cookie session衍生出来一堆的问题。

cookie/session的存储数据的区分—–>如果存储登录信息,在cookie存储和在session存储分别要注意哪些(一般就是cookie存储要加密,session存储只存储sessionid,服务端存储具体登录信息) —》 如果是cookie存储和session存储的应用场景是什么(cookie存储加密可能存在不安全,服务端存储涉及到服务端多台服务器共享session信息的问题) —》 如果服务端session存储,有哪些共享session信息的方法(数据库存储,统一缓存,本地缓存同步,session id路由等) –》 这几种存储方式分别有哪些优缺点 –》 怎么实现集中式缓存(一般说使用memcache的统一缓存) –》 缓存登录信息太大,一台机器不够怎么处理 –》 分布式缓存系统 –》 怎么设计分布式缓存系统 –》 如果其中一台机器挂掉怎么办(主备)–》 怎么实现主备自动切换 –》……

一个简单地问题可能会涉及到很多得知识点,作为程序员应该要善于琢磨这些事情,多想想使用一种技术他的优劣势,可能存在的怎么,应该怎么解决,这样才能丰富自己的知识面,能将每个知识点研究深,研究透。不管做什么样的项目(简单也好,复杂也好),都能从中学到很多东西。

0 0
原创粉丝点击