iT邦幫忙

鐵人檔案

2025 iThome 鐵人賽
回列表
Software Development

學習C++必備!30 天演算法入門到進階 + CSES 與 Leetcode 實戰 系列

本系列將以 C++ 為主要開發語言,結合演算法理論、STL、以及兩大經典題庫 CSES Problem Set 與 LeetCode 進行實戰演練。
內容安排由淺入深:
第一週:STL、排序、雜湊、前綴和等基礎演算法
第二週:雙指標、貪心、搜尋、BFS/DFS
第三週:動態規劃 (DP) 系列專題
第四週:圖論進階、字串演算法與綜合實戰
每天將透過理論解析 → C++ 實作 → 題目演練的方式,幫助讀者一步步掌握演算法核心思維,並透過實戰提升解題能力。

參賽天數 10 天 | 共 10 篇文章 | 0 人訂閱 訂閱系列文 RSS系列文
DAY 1

Day 1:C++ STL入門

系列目標 許多人包括我,都會有程式學習到一個段落後就不知道要從哪個方向繼續學習的問題,若是程式學習過程中有觀念不理解、實作不熟,就容易導致後面的內容全部都學不好...

2025-08-24 ‧ 由 lichengen 分享
DAY 2

Day 2:STL 排序技巧 + 自訂比較子

一、學習目標 深入掌握 C++ STL sort() 的使用方法、時間複雜度與自訂比較技巧。 學會使用 lambda 表達式排序複合資料結構。 透過四道實戰題...

2025-08-25 ‧ 由 lichengen 分享
DAY 3

Day 3 — STL Set & Unordered_Set

一、學習目標 了解 set、unordered_set 的差異與使用情境。 學會如何利用這兩種容器高效處理「去重」、「查找」、「區間維護」。 二、STL S...

2025-08-26 ‧ 由 lichengen 分享
DAY 4

Day 4:時間複雜度與暴力法 — Big-O 與暴力解題策略

一、今日目標 演算法的核心是效率。同一個問題,或許有 10 種方法,但只有時間複雜度最優的才適合大規模資料。然而,暴力法(Brute Force)並不總是壞事,...

2025-08-27 ‧ 由 lichengen 分享
DAY 5

Day 5:前綴和-陣列快速區間查詢

一、學習目標 在演算法題目中,很多時候會遇到計算某個區間的總和,例如: 求第L到第R個數字的總和。 計算滿足條件的子陣列數量。 判斷是否有子陣列和可被整除。...

2025-08-28 ‧ 由 lichengen 分享
DAY 6

Day 6:二分搜尋法 (Binary Search)

一、學習目標 理解二分搜尋法的核心概念與適用場景 熟悉 C++ STL 中 lower_bound、upper_bound 的使用 透過 CSES 與 Lee...

2025-08-29 ‧ 由 lichengen 分享
DAY 7

Day 7:雙指標 Two Pointers 技巧

一、學習目標 掌握雙指針(Two Pointers)技巧的兩大變形: 對撞型雙指針(Two-end) 滑動視窗型雙指針(Sliding Window)...

2025-08-30 ‧ 由 lichengen 分享
DAY 8

Day 8 — 貪心演算法(Greedy)

一、學習目標 了解什麼是「局部最優導向全局最優」的貪心思想,以及何時可用、何時不可用。 學會兩個最常見的貪心套路:區間排程(按結束時間排序)、短工優先以最小化...

2025-08-31 ‧ 由 lichengen 分享
DAY 9

Day 9 — 答案域二分法(Binary Search on Answer)

一、學習目標 理解「在答案範圍上做二分」的核心:把原問題改寫成「給定一個候選值 x,判定是否可行」的單調性判定。 熟悉兩大題型: 最小化最大值(找第一個可行...

2025-09-01 ‧ 由 lichengen 分享
DAY 10

Day 10 — 遞迴與分治法

一、學習目標 理解分治(Divide & Conquer模板與遞迴不變量。 掌握 QuickSort(原地、平均快)與 MergeSort(穩定、最壞...

2025-09-02 ‧ 由 lichengen 分享