競技程式設計與常見面試問題(遞歸、回溯和分治演算法)
從這 14 小時的課程,你將學到
- 理解遞歸方法( recursive approaches )
- 理解回溯法( backtracking )
- 理解動態規劃( dynamic programming )
- 理解分治法( divide and conquer methods )
- 從零開始實作 15 個以上的演算法問題
- 提升你的問題解決能力,成為更強大的開發者

要求
- 具備 Java 基礎
課程說明
本課程講解演算法問題的基本概念,重點在於遞歸、回溯、動態規劃和分治法。在我看來,這些技術在當今社會非常重要,演算法可以應用於(並且有多種應用),涵蓋從軟體工程到投資銀行或研發等多個領域。
第 1 節 – 遞迴
- 什麼是遞歸和遞歸方法?
- 堆疊記憶體和堆疊記憶體概述
- 什麼是棧溢位( stack overflow )?
- 斐波那契數列
- 階乘函數
- 漢諾塔( Hanoi )問題
第 2 節 – 搜尋演算法
- 線性搜尋方法
- 二分搜尋演算法
第 3 節 – 選擇演算法
- 什麼是選擇演算法?
- 如何在 O(N) 線性運行時間內找到 k 階統計量?
- 快速選擇演算法
- 中位數演算法
- 秘書問題
第 4 節 – 位元操作問題
- 二進制數
- 邏輯運算符和移位運算符
- 檢查偶數和奇數
- 位元長度問題
- 俄羅斯農民乘法
第 5 節 – 回溯
- 什麼是回溯?
- n皇后問題
- 漢密爾頓循環( Hamiltonian cycle )問題
- 著色問題
- 騎士巡遊( knight’s tour )問題
- 數獨( Sudoku )遊戲
第 6 節 – 動態規劃
- 什麼是動態規劃?
- 背包問題
- 截桿問題
- 子集和問題
- Kadan 演算法(最大子數組)
- 最長公共子序列 (longest common subsequence,LCS) 問題
第 7 節 – 最優包裝
- 什麼是最優包裝?
- 裝箱問題
第 8 節 – 分而治之的方法
- 什麼是分治法?
- 動態規劃與分治法
- 如何用歸併排序來實現 O(NlogN) 複雜度的排序?
- 最近點對問題
第 9 節 – 常見面試問題
- 熱門面試問題(Google、Facebook 和亞馬遜)
- 字母重排問題
- 回文問題
- 雨水收集問題
- 雞蛋掉落問題
- 荷蘭國旗問題
在每個部分中,我們將討論所有這些演算法的理論背景,然後我們將用 Java 從頭開始實現這些問題。
最後,您可以了解最常見的面試問題(Google、微軟、亞馬遜等)。
感謝您參加課程,讓我們開始吧!
目標受眾
- 本課程針對不熟悉演算法問題的新手或希望複習演算法問題的學生
- 任何準備程式設計面試或希望提高解決問題能力的人
講師簡介
Holczer Balazs 軟體工程師 ( 更多講師主講課程介紹 )
我叫Balazs Holczer,來自匈牙利布達佩斯。我擁有物理學家資格。目前在跨國公司擔任模擬工程師。我從大學開始就對演算法、資料結構及其實作感興趣,尤其對Java語言感興趣。後來,我接觸了機器學習技術、人工智慧、數值方法以及一些常用方法,例如求解微分方程式、線性代數、插值和外推。這些知識在軟體工程、研發或投資銀行等多個領域都可能發揮重要作用。我尤其對量化模型著迷,例如Black-Scholes模型和Merton模型。
如果您對這些主題感興趣,歡迎參觀我的網站!
字幕:英文
- 想要了解如何將英文字幕自動翻譯成中文? 請參考這篇 How-To
- Udemy 永久擁有課程 許多課程約 NT400(點擊連結看更多)
- ✨年訂閱每月 NT350(再享特別優惠:年度訂閱首年享 25% 折扣) 🌈 悠遊 Udemy 的 26000+ 門課,最大化學習 ( 原價 NT635/月 )
- Udemy 現在越來越多課程有中文字幕,請參考 Soft & Share 中文線上課程
- 手機上點選優惠連結看到的價格比電腦上看到的貴
- $代表當地貨幣, 如在台灣為 NT
- 點選”報名參加課程”有可能因瀏覽器 cookies 轉久一點或回報錯誤而無法連上,請稍等刷新或重新點選就會出現
報名參加課程

也許你會有興趣
- 更多資料結構與演算法線上課程
- 更多 Java 相關線上課程
- ★英語學習地圖 – 練好英文是最大的學習槓桿
- 如何找工作學習地圖 – 找工作不要靠運氣!

發表迴響