LeetCode Gray Code 解題詳解:鏡像構造法與位運算優雅公式
格雷碼定義 n 位格雷碼是 2^n 個二進制數的排列,相鄰兩數僅 1 位不同,首尾也僅 1 位不同。遞歸構造: n=1: 0, 1 n=k: 在 n=k-1
LeetCode Reorder List 解題詳解:中點分割 + 反轉後半 + 合併
問題描述 單鏈表 L0→L1→…→Ln-1→Ln,重排為 L0→Ln→L1→Ln-1→L2→Ln-2→… 原地操作,不修改節點值。 三步走策略 找中點:快慢
LeetCode Linked List Cycle II 解題詳解:快慢指針找環入口
問題描述 給定單鏈表頭節點,判斷是否有環,若有返回環入口節點,否則返回 null。要求 O(1) 空間。 Floyd 判環算法(快慢指針) 快指針 fast
Java FileOutputStream 完整指南:文件寫入、JDK7 try-with-resources 與最佳實踐
基本用法 FileOutputStream 是字節流,用於寫入原始二進制數據(圖片、視頻、序列化對象等)。字符數據需先轉為字節(getBytes())。 傳統
UML 用例圖關係詳解:Include vs Extend 區別對比表
核心區別一覽表 維度Include (包含)Extend (擴展) 語義基礎用例必須包含該子用例,無條件執行基礎用例在特定條件下可選執行擴展用例 箭頭方向基礎
HDU 4819 Mosaic 解題報告:二維線段樹區間查詢與單點更新
問題描述 N×N 矩陣初始化給定值。M 次操作:給定中心 (r,c) 和邊長 2*siz+1 的正方形區域,查詢該區域最小值與最大值,將區域內所有值更新為 (m
LeetCode Unique Paths 解題詳解:組合數學與動態規劃雙解法
問題描述 m×n 網格,從左上角走到右下角,只能向下/向右,求不同路徑總數。m,n ≤ 100。 解法一:動態規劃(一維滾動數組) dp[j] 為到達當前行第
BZOJ 1257 [CQOI2007] 余數之和 解題報告:數論分塊 + 等差數列求和
問題描述 計算 J(n, k) = Σ_{i=1..n} (k mod i)。n, k ≤ 10^9,需 O(√k) 算法。 數學轉化 k mod i = k
LeetCode First Missing Positive 解題詳解:原地哈希 O(n) 時間 O(1) 空間
問題描述 未排序整數數組,找出最小缺失正整數。要求 O(n) 時間、O(1) 額外空間。例如:[1,2,0] → 3,[3,4,-1,1] → 2。 核心思想
LeetCode Unique Paths II 解題詳解:帶障礙物的動態規劃
問題描述 m×n 網格,機器人從左上角 (0,0) 走到右下角 (m-1,n-1),只能向下或向右移動。網格中 1 表示障礙物,0 表示空地。求不同路徑數。
Jobdu OJ 1023 EXCEL排序 解題報告:結構體排序與函數對象
題目大意 N (≤100,000) 條學生記錄:學號(6位)、姓名(≤8字符)、成績(0-100)。按列 C 排序:1=學號升序,2=姓名字典序非遞減(同名按學
LeetCode Jump Game II 解題詳解:貪心單遍歷 O(n)
問題描述 數組 nums 中每個元素代表在該位置可跳躍的最大長度。從下標 0 出發,求到達最後一個下標的最小跳躍次數。保證可到達。 貪心策略:維護當前步覆蓋範
A+B for Input-Output Practice (I) 解題:流式讀取直到 EOF
題目要求 輸入包含多行,每行兩個整數 a, b。對每行輸出 a+b。輸入以 EOF 結束。 核心模式 使用 scanf 返回值判斷是否成功讀取兩個整數: in
HDU 4502 吉哥臨時工計劃 解題報告:區間 DP 優化
問題重述 m 天假期,n 份工作。每份工作有起始日 s、結束日 e、工資 c。工作不可重疊(時間交集為空)。選擇工作子集最大化總工資。m ≤ 100, n ≤
C++ 從標準輸入讀取一行整數到數組:兩種高效方法
問題描述 輸入一行以空格分隔的整數,長度不固定,需存入數組。例如:1 123 1234 22 → a[0]=1, a[1]=123, a[2]=1234, a[
HDU 3442 Three Kingdoms 解題報告:狀態壓縮 BFS + 優先隊列
問題建模 網格地圖,包含 5 種攻擊塔(A-E),各有攻擊範圍與傷害。劉備從 $ 走到 !,可經過 . 和 C,不可進入塔格子。同類塔只傷害一次。求到達終點最小
C++ 類與指針實現二叉樹:從定義到遍歷完整指南
二叉樹定義與性質 每個節點至多兩棵子樹(左/右),順序固定。 性質:第 i 層最多 2^{i-1} 個節點;深度 k 的樹最多 2^k-1 個節點;葉子數 =
LeetCode Spiral Matrix 解題詳解:層層剝洋蔥
問題描述 給定 m×n 矩陣,按順時針螺旋順序返回所有元素。例如: [1,2,3] [4,5,6] → [1,2,3,6,9,8,7,4,5] [7,8,