Last updated
Last updated
直覺的做法,直接把所有的情況窮舉,再存入到到一個矩陣,接下來就只要對矩陣做每行的總合就可以。
這個情況很明顯應該會超時(事實也是超時),而且需要的矩陣數量會非常大,這個矩陣在很多情況其實也只會有一堆零。
這題優化的技巧其實滿特別的,我想了半天還是想不到。直接看最終的程式碼也有點難懂,解法其實直接看程式碼也很難懂,我會先放上解法再解釋。
看完後應該會有幾個疑問?
為什麼要 n+1 而不是 n 的空間?
為什麼只有兩個點紀錄,還一個用加的,一個用減的?
我們如果先記錄這樣的情況的話,在最後一段做總和計算的時候,就會讓答案變成這樣
看懂這個邏輯後,這個題目就比較好懂了。
我覺得有個人解釋的很好,想像以下情況: