2013-11-5 深圳尚游网络公司 - 服务器开发工程师

今日下午去面试这个公司,依稀记得几个很有意思题目,也算是考察个人思考逻辑能力。下面分享几个还算有意思的题目。


1、有17根等长木棍,每根长度为11.1,现在切成等量的两种木棍,以下简称A木棍和B木棍。

A木棍长1,B木棍长0.7 求问:最多能切出多少组木棍(1个A和1个B称为1组)。

A 99 B 105 C 111 D 125

解答:显然17*11.1/(1+0.7) = 111 也就是说利用率为100%的时候,能达到111组。于是我们考虑如何能100%利用这些棍子。首先考虑一根棍子的拆解

如下:11.1 = 3*0.7 + 9*1 1

11.1 = 13*0.7 + 2*1 2

显然要100%利用率只能是如上两种切法。假设切法1切了(k)个木棍,切法2切了(17-k)个木棍

则:k*3 + 13*(17-k) = 9*k + 2*(17-k) 若此方程有正整数解,则可以达到100%利用率。

解得k=11 。 答案为111


2、有两个杯子,容量分别为30,70,求如何最快得到20和80

这种小学数学竞赛见过的题目。下面直接给出解法了。80的留给读者思考,先得到10即可。

30 | 70 杯子

————————

30 | 0 30装满水

0 | 30 30的水全部倒入70

30 | 30 30再装满水

0 | 60 30的水再全部倒入70

30 | 60 30再装满水

20 | 70 30的水再倒入70直到满

至此,得到20



3、有4个人过独木桥,仅有一个手电筒,过桥必须依赖手电筒。桥一次最多允许两个人,求这4个人最快过桥时间。其中:两人一起过桥的时间是计以慢的那个人时间。

四个人过桥时间:1,2,5,8

解答:初看这道题目,可能很容易就进入这样的思考:每次让最快的人来护送。

于是:

1、1,8电筒过桥 +8

2、1带电筒回 +1

3、1,5电筒过桥 +5

4、1带电筒回 +1

5、1,2电筒过桥 +2

总耗时为:17

但是这个却不是最优。

当人数等于1,2,3的时候:答案很容易得出;
当人数大于等于4时:

若设过桥速度最快的那个人过桥时间为a,第二快为b;过桥第二慢的那个人过桥时间为y,最慢为z;
此时有两种过桥方案:
一.最快和次快的人先过,然后最快的回来,然后最慢与次慢的人再过,次快的回来;
二.最快的和最慢的过,快的回来,在和次慢的过,快的再回来;

最优方案:

1、1,2电筒过桥 +2

2、1带电筒回 +1

3、5,8电筒过桥 +8

4、2带电筒回 +2

5、1,2电筒过桥 +2

总耗时为:15


4、有一个水库,假设年降水量恒定;水库可供12W人使用20年。由于某些原因人口增加到15W,水库的水只够使用15年。市长呼吁节约用水,希望水可以用到30年。求每个人的用水量为原来的几分之几。(假设人数不会再增加,年降水恒定)

解答:初看此题,还有点迷糊,一直纠结在:12*20 > 15*15 ,后来一想,水库应该还有存储。

假设水库本来有水W,年降雨为k,每人用水为y,则有

W + 20*k = 12*20*y

W + 15*k = 15*15*y

假设节约用水后的人用水量为x,则

W + 30*k = 15*30*x

以上三式,求解得 x = 3/5 * y


5、有序数组{1,2,3,4},进行移动,比如移动1为{4,1,2,3},移动2位{3,4,1,2}。现在有一个这样的有序数组,经过若干位移,但不知道移动了多少。求在该数组查找某个数的效率。

解答:假设数据为{a1,a2,...,an},假设移位了k,则{a1,a2,...,ak},{ak+1,...an}分别有序。

二分查找,找出am,则am必然属于{a1,a2,...,ak}或{ak+1,...an},则必然有

{a1,a2,...,am}或者{am,am+1,...,an}其中一个是有序的。

a。若待查找的数是在有序的一组数中,则直接二分查找即可。

b。若待查找的数不在有序的一组,则在另一组中查找。

c。另一组无序的数组,仍然满足{a1,...,an}的性质。此时问题规模缩减,递归子问题即可。

时间复杂度logn

比如:{17,20,33,1,3,5,6,8,13,15},查找20

1、二分数组{17,20,33,1,3},{5,6,8,13,15}

2、第二组有序,20不在5~15,所以查找第一组数{17,20,33,1,3}

3、{17,20,33,1,3}满足有序数组移位的性质,递归即可。

4、{17,20} {33,1,3},发现20在有序的那组中17~20,则直接对有序数组二分查找即可。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章