jas0nhuang

[筆記] 複習 ALG101

Unit 5

先處理 edge case
mapping 對應多物件
想要用數字就都加上 Number() (型別轉換)

LIOJ 1032

Math.sqrt() // 開根號
Math.abs() // 取絕對值
也可以自已寫 (n < 0) => -n
NUMBER.toFixed(2) // 取到小數第二位

可以用 diff(CLI 指令)比較輸出結果
換行字元問題:ODOA 與 OA
diff --strip-trailing-cr

位元運算的應用

作業檢討:Project7 LIOJ 1008:幾個水桶
看到 n >> 1n & 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