LeetCode Remove Duplicates from Sorted Array:雙指針原地去重
問題描述 給定已排序數組,原地移除重複元素,使每個元素只出現一次,返回新長度。要求 O(1) 額外空間。 解題思路 雙指針:`slow` 指向當前不重複部分的
C++ 類成員指針:語法、用法與 mem_fn/bind 適配
數據成員指針 *指針名`。必須加取地址符 `&`。 struct A { int x; const char c; }; int A::*px = &A::x;
C++ 類構造函數詳解:類型、調用時機與拷貝語義
構造函數分類 默認構造函數:無參數,若未定義任何構造函數,編譯器自動生成(不做任何事)。 一般構造函數(重載):帶參數,可多個,按參數匹配調用。 拷貝構造函數
HDU 1032 The 3n+1 Problem:Collatz 猜想循環長度
問題描述 對於正整數 n,定義序列:n 為偶則 n/2,奇則 3n+1,直到變為 1。序列長度(含 1)稱為循環長度。給定區間 [i, j],求區間內最大循環長
POJ 3129 How I Wonder What You Are!:點積求向量夾角
問題描述 給定若干星星坐標和望遠鏡參數(方向向量、視角角度),判斷每顆星星是否在任一望遠鏡視野內。輸出可見星星數。 解題思路 向量夾角公式:cos θ = (
BZOJ 物流運輸路線規劃:DP + SPFA 預處理 + 線段樹優化
問題描述 n 天內將貨物從碼頭 A 運到 B,每天可能某些碼頭不可用。需制定 n 天運輸計劃,每天選一條路線,修改路線有成本,求最小總成本。 解題思路 動態規
HDU 4751 Divide Groups:二分圖判斷(互不認識建圖染色)
問題描述 n 人參加活動,需分成兩組,使每組內部任意兩人互相認識(即每組是完全圖)。判斷是否可行。 解題思路 若兩人不互相認識(單向或都不認識),則他們不能在
LeetCode Rotate List:鏈表循環右移 K 位
問題描述 給定單鏈表頭節點,將鏈表向右循環移動 k 位。如 1→2→3→4→5, k=2 → 4→5→1→2→3。k 可能大於鏈表長度。 解題思路 遍歷鏈表
LeetCode Rotate Array:數組循環右移 K 位
問題描述 將長度為 n 的數組向右循環移動 k 位。如 n=7, k=3,[1,2,3,4,5,6,7] → [5,6,7,1,2,3,4]。要求原地修改,O(
Codeforces Round #296 (Div. 2) A/B/C/D 題解合集
A. Playing with Paper 矩形紙張反覆剪正方形,求正方形總數。等價於求最大公約數過程中商的和,即輾轉相除法累加商。 long long a,b
LeetCode Reverse Integer:整數反轉與溢出處理
問題描述 反轉 32 位有符號整數的數字。如 123 → 321,-123 → -321。若反轉後溢出(超出 [-2^31, 2^31-1]),返回 0。末尾
LeetCode Surrounded Regions:DFS/BFS 邊界連通區域標記
問題描述 給定二維矩陣包含 X 和 O,將所有被 X 包圍的 O 翻轉為 X。邊界上的 O 及其連通的 O 不會被翻轉。 解法一:DFS(遞歸,可能棧溢出)
C++ 繼承與派生:構造/析構順序、虛繼承原理
繼承基礎 C++ 支持多重繼承。繼承方式:public(保持訪問級別)、protected(公有變保護)、private(公有/保護變私有)。 構造與析構順序
HDU 平方和與立方和:區間偶數平方和與奇數立方和
問題描述 給定區間 [m, n],求區間內所有偶數的平方和與所有奇數的立方和。多組測試,直到 EOF。結果保證 32 位整數範圍內。 解題思路 直接遍歷區間累
UVA 10130 SuperSale:多重 01 背包(每人獨立)
問題描述 有 n 件物品,每件有價值 v 和重量 w。有 m 個人,每人最大負重 W_i。每人可選物品互不影響(物品無限供應)。求所有人能帶走的最大總價值。
POJ 3070 Fibonacci:矩陣快速冪求大數斐波那契
問題描述 輸入 n(≤ 10^9),求 F_n 模 10000,其中 F_0=0, F_1=1, F_n=F_{n-1}+F_{n-2}。輸入 -1 結束。
UVALive 2757:貪心選擇任務最大獎金
問題描述 有 n 個任務,每個任務有獎金 p_i 和截止時間 d_i。每個任務耗時 1,同一時間只能做一個任務。選擇任務子集使所有任務在截止時間前完成,最大化總
LeetCode Fraction to Recurring Decimal:分數轉循環小數
問題描述 給定分子和分母(整數),返回分數的字符串表示。若小數部分循環,用括號括起循環節。例如 1/2 → 0.5,2/1 → 2,2/3 → 0.(6)。