LeetCode 36:有效的數獨——行、列、九宮格唯一性檢查
題目描述 判斷 9×9 數獨盤面是否合法:每行、每列、每 3×3 子區塊包含數字 1-9 且不重複(空格用 . 表示)。 算法思路 三次遍歷,每次用大小為 1
HDU 4722 Good Numbers:數位 DP 統計各位數字和能被 10 整除的數字個數
題目描述 若數字各位之和能被 10 整除,稱為 Good Number。給定區間 [A, B](0 ≤ A ≤ B ≤ 10^18),求 Good Number
C/C++ 進階實戰:重定向、文件操作、二進制加密與靜態/動態庫製作
一、標準流重定向與文件掃描 stdin/stdout/stderr 是預定義 FILE*,可用 fscanf/fprintf 替代 scanf/printf。
HDU 2955 Robberies:0-1 背包轉化逃脫概率最大化問題
題目重述 n 家銀行,第 i 家金額 m_i,被抓概率 p_i。選擇若干銀行搶劫,要求總被抓概率 P_total ≤ P(給定閾值)。最大化總金額。轉化:逃脫概
C++ 高性能格式化庫 CPPFormatLibrary:.NET 風格、類型安全、Header-Only 設計
動機 C++ 格式化字符串傳統方案各有缺陷: sprintf:類型不安全、緩衝區溢出風險、不支援用戶定義類型。 stringstream:類型安全但效率低、語
LeetCode 139:單詞拆分——動態規劃判斷字符串能否由字典單詞組成
題目描述 給定字符串 s 和單詞字典 wordDict,判斷 s 能否被空格拆分為字典中的單詞序列。單詞可重複使用。 DP 狀態定義 dp[i] 表示 s[0
LeetCode 38:外觀數列——字符串模擬生成第 n 項
題目描述 外觀數列:1, 11, 21, 1211, 111221, ...。第 n 項由讀出第 n-1 項得到(如 21 讀作「一個 2,一個 1」→ 121
C/C++ UTF-8 字符串清洗:過濾替換無效字節的健壯實現
問題背景 從網絡/文件讀取的數據可能包含不合法的 UTF-8 字節序列,直接輸出會導致亂碼或解析錯誤。需要一個函數將非法字節替換為安全字符(如 #),保證輸出為
LeetCode 231:2 的冪——位運算判斷整數是否為 2 的冂
題目描述 給定整數 n,判斷是否存在整數 k ≥ 0 使 n = 2^k。 位運算性質 2 的冂二進制表示有且僅有 1 個 1(最高位),其餘為 0。例如:8
LeetCode 1:兩數之和——哈希表單次遍歷查找目標配對
題目描述 給定整數數組 nums 和目標值 target,找出兩數下標使其和為 target。假設唯一解,下標從 1 開始。 哈希表解法 遍歷數組,對每個 x
LeetCode 48:旋轉圖像——原地順時針旋轉 90 度的矩陣變換
題目描述 給定 n×n 矩陣,原地順時針旋轉 90 度。 等價變換 順時針 90° = 主對角線轉置 + 水平中線翻轉(或先水平翻轉再轉置)。 轉置:swa
LeetCode 73:矩陣置零——常數空間利用首行首列標記
題目描述 給定 m×n 矩陣,若某元素為 0,將其所在行、列全部置 0。要求原地修改,O(1) 額外空間。 O(1) 空間算法 用兩布爾變量 firstRo
LeetCode 134:加油站——環形路線能否跑完全程的貪心判斷
題目描述 n 個加油站成環,第 i 站汽油 gas[i],到下一站耗油 cost[i]。車油箱無限大,起始油為 0。求能跑完全程的起始站索引,否則 -1。解唯一
HDU 4950 Monster:判斷能否擊殺怪物的數學條件分析
題目重述 怪物初始血量 h。每回合玩家攻擊減 a,回合結束怪物回血 b。連續 k 回合攻擊後必須休息 1 回合(不攻擊、怪物仍回血)。可提前休息。問能否將怪物血
LeetCode 66:加一——數組表示大整數加一的進位處理
題目描述 非負整數以數組形式存儲(最高位在前),對其加 1,返回新數組。 算法思路 從最低位(數組末尾)向高位遍歷,維護進位 carry: digit =
C 語言實現 strlen 的三種方法:指針運算、計數器與數組下標
方法一:指針差值法 保存起始指針,移動指針至結束符 \0,兩指針相减得長度。 size_t my_strlen(const char* s) { con
C 語言遞歸實戰:空瓶換汽水問題的遞歸解法
問題描述 汽水 1 元/瓶,2 個空瓶可換 1 瓶。手持 20 元,最多能喝多少瓶? 遞歸建模 設 exchange(bottles) 返回由 bottles
LeetCode 70:爬樓梯——斐波那契數列的多種解法與通項公式
題目描述 n 階樓梯,每次可爬 1 或 2 階。求到達頂部的不同方法數。f(n) = f(n-1) + f(n-2),f(1)=1, f(2)=2。 解法一: