當 AI 已經會寫程式,我們更需要知道問題為什麼要這樣解。
這個系列不以「背演算法」或「刷 LeetCode」為目標。
是想輕鬆的從生活問題出發,建立起:
描述問題 → 尋找答案 → 面對變化 → 做出選擇 → 接受取捨
這樣思考的過程。
很多人都說 AI 這麼厲害,幹嘛還學演算法?
但看完這次的系列文章,你應該可以理解:
AI 不能幫我們解決的是藏在 DSA 後面的那些權衡和取捨
現在如果想寫一個 Queue、Binary Search,甚至 Dijkstra,最簡單的方法可能已經不是打開課本,而是直接問 AI。幾秒鐘後,我們就能得到一段...
如果要用 JavaScript 儲存一群資料,我們其實很容易想到一個最直覺的答案: const users = ["Alice", &quo...
你走進超商,前面已經有三個人在排隊。你站到隊伍最後面,等待前面的人依序結帳。我甚至不用特別講,你也能腦補這個機制: 第一個來的人先結帳 第二個來的人接著結帳...
上一篇我們從超商結帳、客服電話與列印工作認識了 Queue。簡單複習一下 Queue,例如四個人依序進入隊伍: A → B → C → D 那麼處理順序自然就...
上一篇談 Priority Queue 時,我們看到了一件很重要的事: 資料不一定按照進來的時間被處理,「誰先被拿出來」本身就是問題的一部分。 Queue...
前面幾篇,我們其實一直在討論同一類操作需求: 下一個要拿哪一筆資料? Queue 的答案是最早進來的那一筆。 Priority Queue 的答案是現在最...
前幾篇我們一直在問一個很類似的問題: 資料要怎麼拿? Queue 說:最早進來的先拿 Stack 說:最後進來的先拿 Priority Queue 說:最...
上一篇我們從資料夾開始認識 Tree。像這樣: Documents ├─ Work │ ├─ report.pdf │ └─ meeting.md │ └─...
上一篇我們用捷運路網理解 Graph。例如有幾個站點: 如果把它看成 Graph: 每個車站是一個 node 站與站之間的連接是一條 edge 畫出來很直...
昨天我們終於把 Graph 從紙上的線條,變成程式真的能保存的資料。例如一張簡化的路網: 我們可以用 Adjacency List 表示: const grap...