首先報喜一波
第一次考,滿分,4道題總共花了2個小時做完,一部分是題簡單的原因,一部分也是自己三刷了PAT的心血吧。
刷PAT的經驗
神指導: 胡凡-《算法筆記》
神助攻:柳婼的博客,百度即可。
戰場:PAT官網和牛客PAT專項
首先,按照算法筆記這本書從一頁認真看到最后一頁,里面講的各種算法和數據結構都特別全,特別詳細,你按照這本書的章節去練習PAT題,按章節一刷,同時總結每個章節的思路和方法。
二刷就按題號走,這樣就打亂了刷題順序,讓你不會一下就知道使用什么思路了。
三刷 就刷你前面一直沒有刷通過的題。
刷題技巧:按照算法筆記那本書的方法解題,並結合一下柳婼大神的答案,因為她很有一些解題技巧的。記住,調試代碼的時候在牛客上調,因為牛客會給出測試樣例,而PAT官網只告訴你錯了,都不知道錯了的樣例是什么,牛客只有前100題,而PAT有所有題集。
最后總結我的技巧:
聲明:我不是大神,方法只適合考試的時候用,不建議用來總結算法方法,因為以下的方法不推薦。
記住,20分的題不需要考慮任何空間和時間的限制,因為這道題不需要你去設計高大上的算法,你想到了最笨的方法一般都能通過的,在考場,時間是一切,想到了方法就直接上手,不要考慮會不會超時等因素。
25,30分的題,是要講究技巧的,一般一定考驗了你對STL【C++的代碼者】的使用。
能不能用暴力的笨方法,看數據量,我感覺在500以內的暴力,在三層for循環內都不會超時間【個人看法】,一旦超過了這個數量級,只要你的算法設計有2層for,鐵定不行的,不用浪費時間敲出來,自己先別的方法。
20分的題
一般20分的題,惡心,麻煩,不難
10分鍾沒思路,或,20分鍾沒調出代碼,跳過先,跳過先,跳過先
一般考數據處理:字母大小寫,一句話帶空格的輸入,正表達式
素數,分數的處理,大數運算
樹的題:
問輸出某某序列,一定是重構出二叉樹【笨的就直接真的重構出來,聰明的就使用靜態重構樹】
問什么路徑,一定是DFS啥都別想
圖的題:
路徑問題,一定是先Dijkstra,然后再DFS
集合,團體問題:一定使用並查集【算法筆記有講解】或者加上DFS
動態規划
聽說是PAT超綱了,不會考,但也得看,因為考過的
動態規划題,不需要花大時間復習,因為考的概率很少,其次很難,碰上了放棄的概率大。
主要復習兩大類即可:
背包問題:0-1,完全
上樓梯問題:青蛙跳,機器人走路
最后
一定的多練習原題,一天不要貪多,但每天都得刷
有任何問題,歡迎留言聯系,小伙我人不聰明,但人熱情哦o( ̄▽ ̄)o