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,則直接對有序數組二分查找即可。


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