LeetCode 204:質數計數(埃拉托斯特尼篩法優化)
題目描述 計算小於非負整數 n 的質數個數。 篩法原理 埃拉托斯特尼篩法:建立布爾數組標記合數。從 2 開始,若未被標記則為質數,將其倍數全部標記為合數。優化
LeetCode 交錯字符串:動態規劃解法(空間優化)
題目描述 給定三個字符串 s1、s2、s3,判斷 s3 是否由 s1 和 s2 交錯組成,且保持 s1、s2 中字符相對順序不變。 動態規劃分析 定義 dp[
C++ 入門教程:值傳遞與引用傳遞、頭文件與源文件組織、默認參數
值傳遞 vs 引用傳遞 值傳遞:函數參數獲得實參的拷貝,函數內修改不影響原變量。 引用傳遞:參數成為實參的別名,共享同一內存地址,函數內修改直接影響原變量。引用
LeetCode 234:回文鏈表判斷(遞歸 O(1) 空間)
題目描述 給定單鏈表,判斷是否為回文。進階要求:O(n) 時間、O(1) 空間(不計遞歸棧)。 遞歸後序遍歷解法 利用遞歸到達鏈表末尾,回溯時依次比較頭節點與
LeetCode 67:二進制字符串相加(模擬手算法)
題目描述 給定兩個二進制字符串,返回它們的和(也是二進制字符串)。例如 11 + 1 = 100。 解題思路 從字符串末尾向前逐位相加,維護進位。類似手算加法
LeetCode 相同樹判斷:遞歸法解析
題目描述 判斷兩棵二叉樹是否完全相同:結構相同且對應節點值相等。 遞歸解法 若兩根節點均為空返回真;若一空一非空返回假;值不等返回假;否則遞歸比較左子樹與左子
LeetCode 125:驗證回文字符串(雙指針優化)
題目描述 給定一個字符串,僅考慮字母數字字符且忽略大小寫,判斷是否為回文。空字符串視為有效回文。 基礎解法:過濾後雙指針 先構建只含字母數字的新字符串並統一轉
LeetCode 對稱二叉樹:遞歸與迭代雙解法
題目描述 判斷一棵二叉樹是否鏡像對稱。即左子樹與右子樹結構互為鏡像,對應節點值相等。 遞歸解法 輔助函數比較兩棵樹是否互為鏡像:若兩根節點均為空返回真;若一空
LeetCode 修補數組:最少添加元素覆蓋範圍 [1, n]
題目描述 給定已排序的正整數數組 nums 和整數 n,向數組中添加最少元素,使區間 [1, n] 內每個數都能由數組元素之和組成。返回最少添加次數。 貪心分
LeetCode 205:判斷同構字符串(映射編碼法)
題目描述 給定兩個字符串 s 和 t,判斷它們是否同構。若 s 中字符可被替換得到 t,且字符順序保持不變,且無兩字符映射到同一字符,則稱同構。例如 egg 和
LeetCode 155:最小棧的設計與實現(雙棧法與向量法)
題目描述 設計一個支持 push、pop、top 操作,並能在常數時間內檢索最小元素的棧。 解題思路 使用兩個棧:一個存儲所有元素(allStack),另一個
LeetCode 278:尋找第一個壞版本(二分查找解法)
題目描述 你是產品經理,帶領團隊開發新產品。不幸的是,最新版本未通過質量檢測。由於每個版本都基於前一個版本開發,壞版本之後的所有版本也是壞的。給定 n 個版本
OpenCV 學習筆記:線條濾鏡與素描效果實現
線條濾鏡 線條濾鏡的目標是提取圖像的主要輪廓線。處理流程包含四個步驟:灰度化、濾波、邊緣檢測、二值化。下面給出完整的 C++ 實現代碼: #include &l
C++ 多態核心特性總結:虛函數、虛析構、虛函數表與實作機制
九大核心特性 虛函數可繼承:子類同名同參同返回值函數自動成為虛函數,父類指標指向子類物件時調用子類版本 —— 這就是多態。 虛析構函數:防止父類指標刪除子類物
LeetCode 303 Range Sum Query Immutable:前綴和陣列 O(1) 區間查詢
題目描述 靜態整數陣列 nums,多次查詢區間 [i, j](含端點)元素和。陣列不變,查詢次數多(測試案例達 10000 次)。 範例 nums = [-2
LeetCode 228 Summary Ranges:有序陣列區間合併
題目描述 給定**無重複、已排序**整數陣列,合併連續區間並格式化輸出。單個數輸出 x,連續區間輸出 b。 範例 5,7] 單次遍歷解法 維護區間起點 st
LeetCode 94 Binary Tree Inorder Traversal:非遞歸棧模擬中序遍歷
題目描述 給定二叉樹根節點,返回其中序遍歷序列。**不使用遞歸**。 範例 Input: [1,null,2,3] (1 右子 2,2 左子 3) 1