重念一次早該補起來的「資料結構與演算法」。這篇筆記下演算法設計的基本,並實際寫一個簡易的判斷兩個 Array 是否存在交集 Intersection 當做練習。
課程相關資訊
[連結]:https://hiskio.com/courses/572/lectures/29779
本篇範圍:Chapter 4
請注意:本系列文章為個人對應課程的消化吸收後,所整理出來的內容。換言之,並不一定會包含全部的課程內容,也有可能會添加其他資源來說明。
內容
先用「人腦思考的觀點想一下」再來設計你的演算法。不要因為電腦辦的到一些暴力運算,所以你就這樣做。
Implement some human thinkings in algorithms. Do not make the computer do dumb calculations or stupid things just because computer can do it.
Counter
主要用於「記錄出現次數」。它是藉由創造一個 Hashtable 來記錄 ( key -> 出現次數 )。這是一個有效將 O(N^2) 變成 O(N) 的方法。