今天看到一道很有意思的演算法面試題,因為之前很少研究演算法,好奇心加上暴躁的脾氣,就決定一定要乾掉這道題:
5個小姐站成一列 他們的姓不同 衣服顏色不同 和不同的飲料 樣不同的寵物 吃不同的水果
1錢小姐穿紅色的衣服,
2翁小姐養乙隻狗,
3陳小姐喝茶。
4穿綠衣服的站在白衣服的左邊,
5綠衣服的再喝咖啡,
6中間的在喝牛奶,
7吃西瓜的養鳥,
8黃衣服的在吃梨,
9吃橘子的站在養貓的旁邊,
10養魚的旁邊是吃梨的 ,
11吃蘋果的在喝香檳,
12江小姐在吃香蕉,
13趙小姐站在藍衣服的旁邊,
14喝白開水的站在吃橘子的旁邊,
15趙小姐站在最左邊。
問 哪個小姐養蛇?
中間的仨小時的思考時間略過…..
直接上答案: 江小姐養蛇。
思路:
先排列出能直接顯示的條件,然後一一推理。
根據13趙小姐站在藍衣服的旁邊和15趙小姐站在最左邊以及6中間的在喝牛奶
得出此圖
2.根據4穿綠衣服的站在白衣服的左邊和5綠衣服的再喝咖啡,再結合上圖,前者可以推出綠衣服只能在第三或第四縱列,後者推出,綠衣服喝咖啡只能在第四縱列。如圖
而1告訴我們錢小姐穿紅色的衣服,所以第三縱列是錢小姐,紅色衣服,而最後的黃色則是趙小姐的衣服顏色。
接著根據8黃衣服的在吃梨和10養魚的旁邊是吃梨的推出如下
基本上,大部分的人都能推到這裡。但是接下來,從表面上看,剩下的資訊似乎都沒有什麼大的價值。
但是仔細看其它條件 一一列出如下:
推測:
翁小姐要麼在第四縱列 ,要麼在第五縱列。
假設翁小姐在第四列:陳小姐肯定不能在第二列,因為如果陳小姐在第二列,則第五列就是江小姐了,如果第五列是江小姐,那香檳和蘋果的條件就無法在任何一列滿足了。
但是,如果陳小姐在第五列,江小姐在第二列,香檳和蘋果的條件仍然無法滿足。
因此,我們的推理是錯誤的,翁小姐不在第四列。
如果翁小姐在第五列:
陳小姐無疑 肯定在第三列
第四列就只能是江小姐了
而香檳和蘋果只能在第五列了
剩下的白開水只能在第一列了
鳥和西瓜只能在第三列了
剩下最後兩個條件:14喝白開水的站在吃橘子的旁邊和9吃橘子的站在養貓的旁邊
推出:橘子在第二列,貓在第一列,剩下江小姐 就剩下蛇了哦
乙個有趣的排序題
前段時間,遇到乙個有趣的程式設計題,見下 1 輸入 陣列 1,1,3,3,3,6,7,8 有序,有重複,請寫一段 將陣列內容變為1,3,6,7,8,x,x,x,並返回前面無重複序列的長度5 要求 在原陣列中操作 不能開闢新陣列 一次遍歷完成.本人的解法如下 public static void ma...
乙個演算法題
題目描述 某省會城市街道縱橫交錯,為了監控路燈的執行狀況,每條街道使用乙個數字字串標識該街道上所有路燈的執行狀況。假設路燈只有如下 3種狀態 分別用數字 0,1,2標識,一盞路燈只對應其中一種狀態 0 標識路燈熄滅 1 標識路燈開啟 2 標識路燈故障 請根據輸入的字串,找出該街道上連續的處於相同狀態...
乙個演算法題
關鍵字 演算法 有101塊金幣,其中一塊是假的,要求用無砝碼的天平稱兩次,判斷是真的金幣重還是假的重 答案 分三份,第乙份份五十個,第二份五十個,第三份份乙個。第一次 將兩份五十個分別放到天平兩端。如果天平是平的,證明第三份是假的。這時只要從真的裡拿出乙個,和假的分別放到天平兩端,就能知道假的是輕是...