[筆記] 複習 ALG101
Unit 5
先處理 edge case
mapping 對應多物件
想要用數字就都加上 Number() (型別轉換)
LIOJ 1032
Math.sqrt()
// 開根號Math.abs()
// 取絕對值
也可以自已寫 (n < 0) => -n
NUMBER.toFixed(2)
// 取到小數第二位
可以用 diff
(CLI 指令)比較輸出結果
換行字元問題:ODOA 與 OAdiff --strip-trailing-cr
位元運算的應用
作業檢討:Project7 LIOJ 1008:幾個水桶
看到 n >> 1
,n & 1
的應用方法大概就像是看到超級挑戰題的解答差不多。
排序
以內建排序法 .sort(function(a, b){return a-b})
處理, 大約要用掉 1 到 2 秒的時間。
搜尋
最基本的遍歷,大概要用 300 毫秒。
最大連續和
窮舉法,O(n^3)
陣列最短距離
窮舉法 O(n*m)
「已排序好的數列」特性,如何優化
two sum
空間換時間,用物件記起來,找到物件裡是否有配對。
逆序數對
跟合併排序法有關。神奇!!
Unit 9
資料結構:
幾個例子:
Set 集合 特性
queue 排序 queue.push queue.front queue.dequeue
排序
counting sort