周六PAT甲級考試復(fù)盤與總結(jié)
先說結(jié)論:仍未步入“高手”行列;現(xiàn)在的學(xué)習(xí)節(jié)奏與方法是對的,有十萬分的必要堅持下去。
題目很簡單,總體來講極其可惜:T1 和 T3 考試時實在沒有找到 bug 出在哪里,目前 T1 的 bug 已經(jīng)找到,我們先且復(fù)盤考試。
復(fù)盤
浙江大學(xué)計算機程序設(shè)計能力考試(Programming Ability Test,簡稱PAT),據(jù)說浙江大學(xué) CS 平均分 70 分[1],于是我也想試試。
考完試我覺得這個 70 分沒有什么意義:
- 首先,本次這四道題目極其簡單
- 其次, CS 的學(xué)生也并非有平日練習(xí)數(shù)據(jù)結(jié)構(gòu)算法題的習(xí)慣,算法這個東西,大部分題目:「無他,唯手熟爾」
這次考 83 分十分可惜,可惜在題目太簡單了,最后半小時,我就在死死盯著屏幕:邏輯上沒問題啊?而且測試用例都通過了,怎么就有判分用例過不去呢?
昨天晚上睡前刷了刷知乎,果然大家都是甲級滿分...恍然大悟 T1 在哪出了問題。
經(jīng)驗1:認真讀題,不可臆測
第一題說:計算機保存一個數(shù)組,未必要在物理空間里申請一段連續(xù)的地址。
比如一個 int (32 bit) 數(shù)組長度為 20 ,其地址可能是:
- // 首地址 元素個數(shù)
- 1024 10
- 0 5
- 2048 5
給我詢問,問我第幾個元素的地址是多少。
很簡單的查詢問題,怕超時,我還寫了前綴和和二分(實際上知乎上說直接暴力枚舉找都不會超時...)。
這題有兩個坑點,我考試時全踩了:
最后問我,開了多少個內(nèi)存空間?
- 我以為,比如一共查詢了兩個數(shù) 0 和 19 ,那就妥妥地用到 1024 這塊還有 2048 這塊返回 2 唄;于是寫個 bool used[N]; 計數(shù)
- 結(jié)果著實被教育了一把:你要開到 19 ,0 到 19 之間的不開嗎?因此你返回查詢過的最大內(nèi)存塊編號就行了
如果查詢?nèi)吭浇?,你也得返?1 個地址空間而不是 0
- 我已經(jīng)看不到題目了,但是據(jù)說題目中其實寫了:至少開一塊地址空間!
這就很服氣,原來一直以來,都是題目理解錯了;而我一直以為是自己的邏輯問題,沒有再讀題。
PAT 甲級題目都是英文的,確實很考英文閱讀理解。
經(jīng)驗2:繼續(xù)刷題,打出自信
其實 T1 都錯題也有自己不自信的鍋:
- 邏輯是對的,但我非得認為“一定是自己哪里寫的有疏漏”
- 如果我能咬定:“好,邏輯沒問題了,我去再讀一遍題目”,那將會是截然不同的結(jié)果
y 總就有這個自信,他講過的每道題都會先說思路,然后親手敲一遍,最后現(xiàn)場 debug 。自信來自于實力強大,如果我能強大到:『這個思路,這個實現(xiàn),就沒問題!如果出錯了,一定是題目沒理解對!』自然也不會有本次考試的可惜。
T3 我也沒做成滿分,我懷疑是 dfs 寫得不好,周日上午打力扣也是,比完才意識到 dfs 有邏輯漏洞。我現(xiàn)在已經(jīng)無法再看到當時的題目和代碼了,也沒必要糾結(jié),再多做遞歸題目就是了。
經(jīng)驗3:復(fù)習(xí)沒用,繼續(xù)開眼
前 3 道題做的不好,于是跳到 T4 。
當時很慌,看到 T4 更慌了:靠,我要是考前復(fù)習(xí)下建樹多好。
我除了 8 月份簡單捋過兩個序列遍歷建樹的代碼就沒再想過了。也確實沒空。
但是記住了一條核心原則:有了中序遍歷序列,則可以找到中心點,然后遞歸下去。
8月17號關(guān)于這部分的筆記
于是硬著頭皮,竟然寫出來了, 30 分滿分。遞歸真的很神奇,覺得算法可能有點麻煩,但是寫的時候才發(fā)現(xiàn)遞歸幫我們把好多邏輯自動實現(xiàn)了。
因此現(xiàn)在更應(yīng)該:
- 把復(fù)習(xí)的時間更多地花在刷新題上
- 好好記筆記,好好總結(jié),爭取學(xué)一遍就有學(xué)懂學(xué)透,少被模板,多理解核心思路,省著以后再回來看
總結(jié)
強烈給大家推薦 y 總的 PAT 課,雖然我算是他比較差的學(xué)生了(感覺很多人考了滿分):AcWing.com PAT甲級輔導(dǎo)課[2]
我 8 月 9 號買的, 9 月 6 號刷完,之后就沒怎么碰過了。收獲不小,關(guān)于算法細節(jié)的咱們以后慢慢嘮。
算法這部分,上述三個經(jīng)驗總結(jié)起來,就一句話:現(xiàn)在的學(xué)習(xí)節(jié)奏與方法是對的,有十萬分的必要堅持下去! 現(xiàn)在的學(xué)習(xí)節(jié)奏與方法是對的,有十萬分的必要堅持下去! 現(xiàn)在的學(xué)習(xí)節(jié)奏與方法是對的,有十萬分的必要堅持下去!
接下來準備干掉 y 總的算法提高課和算法競賽進階指南,這兩節(jié)課內(nèi)容太多了,先挑重點攻破吧!
參考資料
[1]浙大PAT考試的成績對保研有所幫助嗎?- 陳越姥姥的回答 - 知乎: https://www.zhihu.com/question/37289617/answer/71302179[2]AcWing PAT甲級輔導(dǎo)課: https://www.acwing.com/activity/content/27/