首頁
學習紀錄
遊戲心得影視Life書單案件檔案
Side Projects委託作品與二創互動實驗場
Kurau
百百 BLOG
首頁
學習紀錄
遊戲心得影視Life書單案件檔案
Side Projects委託作品與二創互動實驗場
Kurau

Kurau Blog

「隨心而寫,真真假假,都是我」

一個記錄生活、輸出興趣的個人空間。
遊戲、影視、閱讀、學習……每一段體驗都值得留下文字。

頁面導覽

  • 學習紀錄
  • 遊戲心得
  • 影視Life
  • 書單
  • 委託作品與二創
  • Kurau
  • 合作邀請

找到我

歡迎來 Discord 找我聊天!

“曾經發生的事不可能忘記,只是暫時想不起來而已。”-《神隱少女》

© 2026 Kurau All rights reserved

面試考題

解題思維

By Kurau·Updated 2026-05-09·2 分鐘閱讀

labuladong 的演算法小抄 :: labuladong的演算法小抄

https://labuladong.github.io/algo/

常見解題框架

1. 暴力窮舉 → 最佳化

先寫出暴力解,再思考如何用資料結構或演演算法最佳化。

2. 雙指標(Two Pointers)

適用場景:已排序陣列、鏈結串列、滑動視窗問題

左右指標:從兩端向中間收斂(如 Two Sum II)
快慢指標:偵測環、找中點(如 Linked List Cycle)
滑動視窗:連續子陣列/子字串問題

3. 遞迴 / 回溯(Backtracking)

適用場景:排列組合、子集、棋盤問題

做選擇 → 遞迴 → 撤銷選擇

4. 動態規劃(DP)

適用場景:最優子結構 + 重疊子問題

1. 定義狀態(dp[i] 代表什麼)
2. 寫出狀態轉移方程
3. 確定 base case
4. 確定遍歷順序

5. BFS / DFS

  • BFS:最短路徑、層序遍歷(用 Queue)
  • DFS:路徑搜尋、連通性(用 Stack 或遞迴)

6. 貪心(Greedy)

每步都選當前最優解,適用於區間排程、跳躍遊戲等。

面試解題步驟

  1. 釐清題意:確認輸入輸出、邊界條件
  2. 想出暴力解:確保理解問題
  3. 最佳化:找出重複計算或可利用的結構
  4. 寫程式碼:保持清晰簡潔
  5. 測試:用範例和邊界 case 驗證

目錄

    ◆ 相關文章

    • diff演算法 與 React的key值

      2026-05-09
    • 時間複雜度(time complexity)和空間複雜度(space complexity)

      時間複雜度(time complexity)和空間複雜度(space complexity)

      2026-05-09
    • Async function-Await 函式

      2026-06-02
    • throw Error用法

      2026-06-02
    ← 上一篇聽過Event Loop嗎下一篇 →說說reduce() filter() map()的效果

    ◆ 關於作者

    Kurau

    個人寫作 / 創作的 SoT,記錄遊戲、影視、學習與生活。

    更多 Kurau 的文章