LeetCode 54 螺旋矩陣:方向標記法模擬遍歷
LeetCode 54 螺旋矩陣:方向標記法模擬遍歷 給定 m×n 矩陣,按順時針螺旋順序返回所有元素。模擬法:維護當前位置 (i,j)、方向 dir(0右、1
HDU 2089 數位 DP:不含 4 和 62 的數字計數
HDU 2089 數位 DP:不含 4 和 62 的數字計數 求區間 [s, e] 內不含數字 4、不含子串 62 的整數個數。經典數位 DP:dp[pos][
C 語言鏈表基本操作:創建、插入、刪除、查找與遍歷
C 語言鏈表基本操作:創建、插入、刪除、查找與遍歷 單鏈表是動態資料結構基礎。本文提供完整 C 實現:節點定義、創建空表、頭插法插入、按值刪除、按值查找、遍歷輸
LeetCode K 個一組翻轉鏈表:迭代法常數空間實現
LeetCode K 個一組翻轉鏈表:迭代法常數空間實現 給定單鏈表頭節點與整數 k,每 k 個節點為一組翻轉,不足 k 者保持原序。要求 O(1) 額外空間。
BestCoder ZYB loves Xor I:字典樹統計 lowbit 異或和
BestCoder ZYB loves Xor I:字典樹統計 lowbit 異或和 給定長度 n(≤5×10⁴)陣列 A,求所有有序數對 (i,j) 的 lo
LeetCode 234 回文鏈表:O(n) 時間 O(1) 空間判斷
LeetCode 234 回文鏈表:O(n) 時間 O(1) 空間判斷 給定單鏈表頭節點,判斷是否為回文。要求 O(n) 時間、O(1) 空間。解法:快慢指針找
HDU 5280 Senior's Array:必須修改一個元素的最大子段和
HDU 5280 Seniors Array:必須修改一個元素的最大子段和 給定 n(≤1000)個整數,必須將其中恰好一個元素修改為 P,求修改後的最大子段和
HDU 5281 Senior's Gun:貪心策略最大化擊殺得分
HDU 5281 Seniors Gun:貪心策略最大化擊殺得分 n 把槍(攻擊力 a_i),m 隻怪(防禦力 b_j)。槍攻擊力 ≥ 怪防禦力可秒殺,得分 =
LeetCode 接雨水:雙指針與分治法求解
LeetCode 接雨水:雙指針與分治法求解 給定非負整數陣列 height 表示柱狀圖高度,寬度均為 1,計算下雨後能接多少雨水。核心觀察:位置 i 的水位
SPOJ 297 Aggressive Cows:二分答案求最大最小間隔
SPOJ 297 Aggressive Cows:二分答案求最大最小間隔 給定 n(≤100,000)個已排序的攤位座標,選 c 個攤位放牛,使任意兩牛之間的最
LeetCode 缺失的第一個正數:O(n) 時間常數空間置換法
LeetCode 缺失的第一個正數:O(n) 時間常數空間置換法 給定未排序整數陣列,找出最小缺失正整數。要求 O(n) 時間、O(1) 額外空間。核心思想:將
LeetCode 大數相乘:字符串模擬乘法與 BigInteger 實現
LeetCode 大數相乘:字符串模擬乘法與 BigInteger 實現 給定兩個非負整數字串 num1, num2(長度任意),返回乘積字串。兩種 Java
UVALive 3363 字符串壓縮:區間 DP 與循環節優化
UVALive 3363 字符串壓縮:區間 DP 與循環節優化 給定字串,可將連續重複的子串壓縮為 k(sub) 形式(如 ababab → 3(ab)),求壓
LeetCode 4Sum:K-Sum、哈希表與多重映射多種解法總結
LeetCode 4Sum:K-Sum、哈希表與多重映射多種解法總結 給定整數陣列 nums 與目標值 target,找出所有不重複的四元組 [a,b,c,d]
UVA 10755 Garbage Heap:三維矩陣最大子矩陣和
UVA 10755 Garbage Heap:三維矩陣最大子矩陣和 給定 A×B×C(≤25)三維矩陣,求任意子矩陣(連續長方體)的最大元素和。經典做法:先在第
POJ 2796 Feel Good:單調棧優化區間最小值乘和
POJ 2796 Feel Good:單調棧優化區間最小值乘和 給定 n(≤100,000)天的情緒值 a_i,某區間價值定義為 (區間和) × (區間最小值)
UVA 1382 Distant Galaxy:平行座標軸矩形覆蓋最多點數
UVA 1382 Distant Galaxy:平行座標軸矩形覆蓋最多點數 給定 n(≤100)個點,求一個邊平行於座標軸的矩形,使其邊界上包含的點數最多。點在