步步爲營(七)貪心(6)小結

貪心,遞推,動態規劃,這三種算法思想都是很難掌握的。因爲沒有死板的公式和套路的代碼,只能通過日常的學習和思考,去不斷加深自己對這類題目的敏感度和熟練度,提高自己的思維能力,才能對這類題目遊刃有餘。

深山三十年,最終習得一身的內功。眼望之處,再無敵手。

貪心算法,也就是三大步:
1. 最優解情況的證明
2. 貪心策略的制訂
3. 數據的預處理過程。

大家如果接觸過20+的貪心題目,就會發現大多數的題目都需要對數據進行一系列的預處理。最基本的也是排序,複雜點的就像上一篇中的進行數學計算。預處理策略的制訂,關係着後面貪心策略的代碼複雜度,也影響着程序的出錯機率。

最優解的證明過程,這個關係着整個程序的正確與否,至關重要。如果接觸的題目比較簡單,那麼最優解的證明也就是幾句話便可以證明清楚。但是這一環不能缺失,如果不能證明最優解的有效性,那麼貪心策略的制訂就毫無意義。

但是…… 這個真的不好做,因爲很多人在”做出一道題“和”證明這道題就該這麼做“這兩個階段中間。很多時候都是做出了題目,問及題解卻張口結舌,最終只能回答一句”額,題做得多了你就明白了“。推理論證是很嚴謹的,如果能在這個方面多進行練習,那麼對於日後算法功底的精進很有幫助。個人真的推薦寫題解,寫解題報告,提升的比單純做題快很多。這是一代又一代人的教訓,還是接受比較好……

貪心策略的制訂,這個多說無益,因爲每道題目的貪心策略都可能不一樣,死記硬背不會有好結果的~~ 這就只能練習練習練習,演算演算演算

我個人把貪心算法叫做小動規,因爲基本思路類似,如果貪心題目做得多,那麼動態規劃的學習也會變得很容易。但是這樣叫也不妥,因爲貪心和動規的求解方向是相反的,貪心是從前往後推,動規是從後往前推~~ 不過也差不多,因爲動規的題目是要比貪心的題目厚重得多…… 額,算啦,這個問題也不重要


其實上面都是些廢話,但是算法這個東西本來就是功在平時,而且貪心又是見招拆招的打法,一個小結也只能寫寫這些了 _(:зゝ∠)_

算法路漫漫,如若懈怠荒廢,便只落得虛度光陰,少年白頭,勉強度日。
不如日日勤勉,苦修三年,習得一身武功,闖蕩天下,一生戎馬。

對呀對呀,我就是中二病,你咬我呀! ( ̄_, ̄ )

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