C++學習筆記
這是一份我在 LeetCode 練習過程中的學習筆記,記錄的不只是題目的最終解法,而是 我實際思考與嘗試的過程。
在這本筆記中,我並不刻意追求每一題一開始就寫出最快、最精簡的解法。有些解法在效率上可能不是最佳選擇,但它們真實反映了我當下理解題目、拆解問題、以及逐步修正想法的思考脈絡。
我希望保留下來的,是「當時我是怎麼想的」,而不是只留下事後回頭看才會寫出的完美答案。也希望透過這樣的紀錄,可以分享我自己在當時學習程式時的思路與掙扎。
文章中出現的程式碼,是我在解題「當時」寫下來的程式碼與推導過程(包含嘗試、修正、甚至不夠完美的寫法),用來呈現我怎麼解出這題。
另外,我也會利用 ChatGPT 協助補上 LeetCode 原題的中文翻譯(方便快速對照題意)、和詳細解題思路,並幫忙整理排版與編寫筆記內容,讓整體筆記更清楚、更好讀。
在每一題中,我會盡量完整保留:
- 題目的原始敘述與條件限制
- 第一時間想到的直覺解法
- 解題過程中各種情況的判斷邏輯
- 程式中重要變數的設計與語意
- 為什麼在某些地方需要特別處理(例如邊界條件、溢位判斷)
我刻意不只記錄「怎麼寫出正確的程式碼」,而是試著說明「當下我是如何一步一步推導出這個寫法的」。
本筆記的內容會依照資料結構與演算法類型進行整理,並在同一題中保留不同解法的演進過程,讓讀者可以清楚看到從直覺解法到較有效率解法的轉變。
這份筆記同時也是一份學習紀錄,會隨著練習進度持續更新與修正,反映我在理解與解題能力上的成長。
本筆記主要以 C++ 為實作語言,但重點放在思考方式本身,而非語法技巧。
此外,這份筆記也會同步手動更新到 HackMD,並以 HackMD 的網頁排版格式作為參考,將內容整理製作成 GitHub Pages 版本。
- HackMD(原文版): https://hackmd.io/@scottnick/BkiTHyg4Zl
Grind 75
NeetCode 150
LeetCode 75
Top Interview 150
Contests
All problems
Two Sum
Longest Substring Without Repeating Characters
Longest Palindromic Substring
Ransom Note
String to Integer (atoi)
Container With Most Water
Word Break
Rotting Oranges
Valid Parentheses
Valid Palindrome
Longest Palindrome
Two Sum
Longest Substring Without Repeating Characters
Longest Palindromic Substring
Reverse Integer
Container With Most Water
Word Break
Rotting Oranges
Valid Parentheses
Plus One
Climbing Stairs
Valid Palindrome
Product of Array Except Self
Binary Search
1768. Merge Strings Alternately
1071. Greatest Common Divisor of Strings
1431. Kids With the Greatest Number of Candies
605. Can Place Flowers
345. Reverse Vowels of a String
151. Reverse Words in a String
238. Product of Array Except Self
Biweekly Contest 176
Biweekly Contest 175
Biweekly Contest 174
Weekly Contest 485
Weekly Contest 486
Biweekly Contest 175
1. Two Sum
3. Longest Substring Without Repeating Characters
5. Longest Palindromic Substring
7. Reverse Integer
8. String to Integer (atoi)
11. Container With Most Water
20. Valid Parentheses
53. Maximum Subarray
66. Plus One
70. Climbing Stairs
125. Valid Palindrome
139. Word Break
151. Reverse Words in a String
169. Majority Element
238. Product of Array Except Self
345. Reverse Vowels of a String
383. Ransom Note
409. Longest Palindrome
605. Can Place Flowers
704. Binary Search
994. Rotting Oranges
1071. Greatest Common Divisor of Strings
1431. Kids With the Greatest Number of Candies
1768. Merge Strings Alternately
3809. Best Reachable Tower
3810. Minimum Operations to Reach Target Array
3813. Vowel-Consonant Score
3814. Maximum Capacity Within Budget
3815. Design Auction System
3838. Weighted Word Mapping
3839. Number of Prefix Connected Groups
3840. House Robber V