1、給出一行C語言表達式,判斷給定的整數(shù)是否是一個2的冪。
2、一個大小為N的數(shù)組,所有數(shù)都是不超過N-1的正整數(shù)。用O(N)的時間找出重復(fù)的那個數(shù)(假設(shè)只有一個)。一個大小為N的數(shù)組,所有數(shù)都是不超過N+1的正整數(shù)。用O(N)的時間找出沒有出現(xiàn)過的那個數(shù)(假設(shè)只有一個)。
3、如何快速找出一個32位整數(shù)的二進制表達里有多少個"1"?用關(guān)于"1"的個數(shù)的線性時間?
4、你在一幢100層大樓下,有21根電線線頭標(biāo)有數(shù)字1..21。這些電線一直延伸到大樓樓頂,樓頂?shù)木頭處標(biāo)有字母A..U。你不知道下面的數(shù)字和上面的字母的對應(yīng)關(guān)系。你有一個電池,一個燈泡,和許多很短的電線。如何只上下樓一次就能確定電線線頭的對應(yīng)關(guān)系?
5、用線性時間和常數(shù)附加空間將一個長度為n的字符串向左循環(huán)移動m位(例如,"abcdefg"移動3位就變成了"defgabc")。
6、兩個機器人,初始時位于數(shù)軸上的不同位置。給這兩個機器人輸入一段相同的程序,使得這兩個機器人保證可以相遇。程序只能包含“左移n個單位”、“右移n個單位”,條件判斷語句If,循環(huán)語句while,以及兩個返回Boolean值的函數(shù)“在自己的起點處”和“在對方的起點處”。你不能使用其它的變量和計數(shù)器。
7、你在一個飛船上,飛船上的計算機有n個處理器。突然,飛船受到外星激光武器的攻擊,一些處理器被損壞了。你知道有超過一半的處理器仍然是好的。你可以向一個處理器詢問另一個處理器是好的還是壞的。一個好的處理器總是說真話,一個壞的處理器總是說假話。用n-2次詢問找出一個好的處理器。
8、用線性時間和常數(shù)附加空間將一篇文章的單詞(不是字符)倒序。