你究竟要一本什麼樣的問題集?
市面上鈴琅滿目有關「問題集」的書,到底哪一本才是適合自己,選擇哪一本才是最對的?各位看倌們,就讓我們一一解決你的疑慮吧~~
有什麼不一樣?
作者為什麼在市面上已有各式各樣類似的書中,還會出版一本雖看似相同卻大有不同,且大有來頭的書呢?
首先本書的題目同樣是一個題目接一個題目講解,但是問題與解答是分開來。於是本書一分為二,前半是問題與問題的說明,後半冊是問題的解答與程式。
再來從書名就可以一窺究竟,本書收蘿了一百多個程式中,中等難度以上的題目,將這些題目約略分成九類,是一本除了追求正確性,更講求「效率」的程式的書。
此話怎講?
一般的程式員他們常常可以設計出「正確」的但卻沒有「效率」的程式或演算法。本書是透過各種題目的幫助,教你如何設計一個有效率的程式,此種程式演練你可以從書中的九大類中的第一類的題目,讓你了解到本書的題目、解法與其他「問題集」的書籍之間的差異。
另外本書中也收蘿一些不容易歸的題目在第七類-其他問題中可看到,從很單純到相當技巧性等都收在這一類,可以算是雜項。
最後當你在解題時陷入困境中,這時你可以翻翻最後的參考文獻,此部份也是本書的特點之一,在這個部分告訴你這個題目是誰想出來的,解法是誰做的。
有什麼一樣?
雖說一樣卻是同中有異。
像其他書一樣書中有許多枯橾、泛味的問題,但在本書中的第八類-遊戲問題,如同天外飛來一筆般,此為外一章,此章收錄了一些有趣的、娛樂性的題目。如排魔方陣、武士巡邏、環遊世界…等。
以第五類的主題-排序來講,雖同樣都是講「排序」的題目,但本書為了你的方便,把幾個有名的方法都寫成程式提供你參考。
你知道了嗎?
本書即然指明了「技巧篇」,所以問題就以發揮技巧為主,再來本書的題目限定在資料結構以下,也就是說解這些題目可以不必要資料結構的技巧。事實上,本書中所用到的技巧最難的就是「推疊」、「佇列」而已。