1,你讓一些人為你工作了七天,你要用一根金條作為報酬。金條被分成七小塊,每天給出一塊。 如果你只能將金條切割兩次,你怎樣分給這些工人?
,
解答:
把金條分成三段(就是分兩次,或者切兩刀),分別是整根金條的1/7、2/7 4/7
第一天:給1/7的,
第二天:給2/7的,收回1/7的
第三天,給1/7的
第四天:給4/7的,收回1/7和2/7的
第五天:給1/7的
第六天:給2/7的,收回1/7的
第七天:給1/7的
2, 有兩間房,一間房里有三盞燈,另一間房有控制這三盞燈的開關(這兩間房是分割開的,毫無聯系).現在要你分別進這兩間房一次,然后判斷出這三盞分別是由哪個開關控制,你能想出辦法嗎?(注意:每間房只能進一次)
解答:
由於工作時間長的燈泡的溫度高,工作時間短的溫度低,故可以先走進有開關的房間,將三個開關編號為A、B和C,將開關A打開10分鍾,然后關閉A;再打開B,然后馬上走到有燈的房間,此房間內正在亮着的等由開關B控制;用手去摸一摸另外兩盞燈,發熱的由開關A控制,涼的由開關C控制.
3.
★用一種算法來顛倒一個鏈接表的順序。現在在不用遞歸式的情況下做一遍。
★用一種算法在一個循環的鏈接表里插入一個節點,但不得穿越鏈接表。
★用一種算法整理一個數組。你為什么選擇這種方法?
★用一種算法使通用字符串相匹配。
★顛倒一個字符串。優化速度。優化空間。
★顛倒一個句子中的詞的順序,比如將“我叫克麗絲”轉換為“克麗絲叫我”,
實現速度最快,移動最少。
★找到一個子字符串。優化速度。優化空間。
★比較兩個字符串,用O(n)時間和恆量空間。
★假設你有一個用1001個整數組成的數組,這些整數是任意排列的,但是你知道所有的整數都在1到1000(包括1000)之間。此外,除一個數字出現 兩次外,其他所有數字只出現一次。假設你只能對這個數組做一次處理,用一種算法找出重復的那個數字。如果你在運算中使用了輔助的存儲方式,那么你能找到不 用這種方式的算法嗎?
★不用乘法或加法增加8倍。現在用同樣的方法增加7倍。
解答: 都沒有理解 (??????)