LeetCode 組合總和 II:回溯去重詳解
問題描述 給定一個候選數字集合 candidates 和目標值 target,找出所有不重複的組合,使得數字和為 target。每個數字在每個組合中只能使用一次
LeetCode 缺失的第一個正數:O(n) 時間 O(1) 空間解法
問題描述 給定一個未排序的整數數組,找出其中沒有出現的最小正整數。要求時間複雜度 O(n),空間複雜度 O(1)。 核心思想:原地哈希(索引映射) 利用數組本
LeetCode 大數相乘:字符串乘法詳解
問題描述 給定兩個以字符串形式表示的非負整數 num1 和 num2,返回它們的乘積,結果也以字符串形式返回。不允許使用內置的 BigInteger 庫或直接轉
Android ContentProvider 基礎入門與實戰
什麼是 ContentProvider? ContentProvider 是 Android 四大組件之一,主要用於在不同應用程式之間共享數據。它提供了一套標準
Android layout_weight 坑點全解析:剩餘空間分配機制
核心結論 layout_weight 分配的是**父容器剩餘空間**,而非總空間。 **子 View 的對應尺寸屬性(寬/高)必須設為 0dp(或 wrap_c
UVa 410 Station Balance:貪心策略最小化離心機不平衡度
問題模型 C 個腔室,每室最多放 2 個標本。S 個標本質量已知。需分配使 **IMBALANCE = Σ |CM_i - AM|** 最小,其中 CM_i 為
變基進位制生成多數組元素全排列組合(JavaScript 實現)
問題描述 給定多個長度不同的數組,如 [a,b,c], [b,c], [a,b,d,h],從每個數組取一個元素,生成所有組合(笛卡爾積)。 變基進位制思想 常
C++ 運算符重載筆記:&&、||、逗號運算符為何不建議重載
短路求值特性 內置 &&、|| 具備**短路求值**:左操作數已決定結果時,右操作數**不會**被求值。 10) ... // 安全:p==nullptr 時
HDU 1083 Courses:二分圖最大匹配判斷課程代表委員會
問題轉化 P 門課程,N 名學生。每門課選一些學生。能否選出 P 名學生組成委員會,每門課恰好一名代表,且每生最多代表一門課? → **二分圖最大匹配**是否等
HDU 2444 The Accommodation of Students:二分圖判定 + 最大匹配
問題建模 學生間「認識」關係構成無向圖。需將學生分為兩組,組內無邊 → **圖必須是二分圖**。若非二分圖輸出 No。若是二分圖,只允許認識的雙人同住 → 在二
POJ 3255 Roadblocks:A* + 反向 SPFA 求次短路
題目轉化 無向圖,求從 1 到 n 的**第二短路**長度(允許重複邊/點,但路徑長度嚴格大於最短路)。 A* 求 K 短路原理 預先從終點跑**反向 SP
C++ 指針進階(八):函數指針聲明、調用與回調實戰
函數指針語法 返回類型 (*指針名)(參數列表)。 int add(int a, int b) { return a+b; } int (*pf)(int,in
C++ STL vector 完整用法指南:從構造到擦除的 30 個核心操作
基本概念 vector<T>:動態陣列,連續內存,支持隨機訪問,尾部增刪 O(1) 攤還,中間增刪 O(n)。 頭文件:#include <v
C++ 封裝常用組件:頭文件、預編譯指令與存儲類完全指南
四種復用方式對比 方式優點缺點 重寫代碼無依賴極其低效 複製粘貼快速版本混亂、難維護 extern 聲明跨文件共享聲明分散、易出錯 頭文件**集中聲明、編譯器
C++ Socket 網絡爬蟲入門(一):HTTP GET 下載網頁與圖片
整體流程 解析 URL → 域名 host、資源路徑 path、端口(默認 80)。 makeSocket(host, port) 建立 TCP 連接,返回
Trie 樹(字典樹)C++ 完整實現:插入、查找、刪除、統計
核心思想 利用字符串公共前綴壓縮存儲,每個節點最多 26 個子節點(小寫字母)。根節點代表空串,路徑從根到節點拼成前綴,標記 terminable 表示完整單詞
NYoj 20 吝嗇的國度:樹上 DFS 求每節點父節點
題目建模 N 個城市,N-1 條邊連通 → **樹**。給定起點 S,對每個城市 i,輸出從 S 到 i 路徑上的**上一個城市**(即父節點),S 輸出 -1