Android Activity 棧管理:任意關閉指定 Activity 實現邏輯
場景痛點 購物 App 流程:商品頁 → 登錄頁 → 註冊頁 → 充值頁。充值成功後需關閉中間所有頁面返回商品頁。且用戶可隨時點擊返回鍵逐級退回,不能提前 fi
J2SE 遞歸算法入門 - 從階乘到斐波那契的經典實現
什麼是遞歸 遞歸是指函數在定義中直接或間接調用自身。解決問題時將大問題分解為結構相同的子問題,直到達到基本情況(基準情況)直接返回結果。 三大經典示例 1.
LeetCode 兩數之和 - 哈希表 O(n) 解法
問題描述 給定整數數組和目標值 target,找出兩個數使其和等於 target,返回其下標(1-based),假設唯一解。 解法:哈希表一遍掃描 遍歷數組,
UVA 10004 Bicoloring - 二分圖判定(BFS/DFS)
問題描述 給定無向圖,判斷是否為二分圖(即能否用兩種顏色給頂點著色,使相鄰頂點顏色不同)。輸入多組測試,每組給出邊數,以 0 結束。 解法:BFS 著色 從任
HDU 5046 Airport - 二分答案 + DLX 可重複覆蓋
問題描述 N 個城市(N ≤ 60),坐標 (x,y),距離為曼哈頓距離。需在 K 個城市建機場,使每個城市到最近機場的最大距離最小。輸出該最小最大距離。 解
HDU 3335 Divisibility - DLX 算法求最大反鏈(可重複覆蓋)
問題描述 給定 n 個正整數(n ≤ 1000),選擇盡可能多的數,使得任意兩個選中的數互不整除(即不存在一個能整除另一個)。輸出最大選擇數量。 建模為最大獨
LeetCode 55 解碼方法 - 動態規劃處理字符串解碼
問題描述 字母 A-Z 編碼為 1-26。給定數字字符串,求解碼為字母字符串的方法數。例如 12 可解碼為 AB(1,2) 或 L(12),共 2 種。注意:0
LeetCode 比較版本號 - 字符串分割與逐段比較
問題描述 比較兩個版本號 version1 和 version2。版本號由數字和點組成,如 1.2.3。比較規則:從左到右逐段比較數字大小,缺失段視為 0。返回
LeetCode Excel 表列標題 - 數字轉 26 進制字母
問題描述 給定正整數 n,返回 Excel 表中對應的列標題。例如:1→A, 26→Z, 27→AA, 28→AB。這本質是 26 進制轉換,但無「0」位,即
中綴表達式轉後綴表達式(逆波蘭表示法)完整實現
算法原理 中綴表達式(如 1+2*3)轉後綴表達式(如 123*+)便於計算機求值。使用棧存儲運算符,掃描中綴表達式: 數字直接輸出。 左括號入棧。 右括號:
LeetCode 96 - 不同的二叉搜索樹數量(動態規劃)
問題描述 給定 n,求由 1...n 為節點構成的結構不同的二叉搜索樹(BST)數量。例如 n=3 時有 5 棵不同的 BST。 動態規劃分析 設 f(i)
MyMathLib 系列:行列式計算與向量組極大線性無關組求解
行列式降階法與方程組消元 本文介紹 MyMathLib 中的核心算法:基於高斯消元法的行列式計算、方程組求解、矩陣秩計算,以及向量組的極大線性無關組判定。 1
UVa 10935 - 拋棄卡片模擬隊列操作
問題描述 有一副編號 1 到 n 的卡片,重複以下操作:丟棄最頂端的卡片,將新的最頂端卡片移到底部,直到只剩一張卡片。輸出被丟棄的卡片順序和最後剩下的卡片。
POJ 2115 C Looooops - 擴展歐幾里得算法求解同餘方程
問題背景 給定 while 循環 while(x=a; x!=b; x+=c) statement;,在模 2^k 意義下,statement 會被執行多少次?
LeetCode 多數元素問題解析與高效解法
問題描述 給定一個大小為 n 的數組,找出多數元素。多數元素是指在數組中出現次數大於 ⌊ n/2 ⌋ 的元素。假設數組非空且多數元素總是存在。 解法一:哈希表
LeetCode Merge k Sorted Lists:分治合併 k 個有序鏈表
問題描述 合併 k 個已排序鏈表為一個有序鏈表。分析時間空間複雜度。 分治法(自底向上) 兩兩合併,類似歸併排序: 1. 將 k 個鏈表兩兩配對合併 → k/
BZOJ 2823 AHOI 2012 信號塔:凸包 + 最小覆蓋圓
問題描述 平面 n 個點,求最小圓覆蓋所有點。輸出圓心坐標與半徑,保留兩位小數。 核心定理 最小覆蓋圓由凸包上的點決定(內部點不影響)。且最小覆蓋圓要么: 1
LeetCode Valid Palindrome:雙指針驗證回文串
問題描述 判斷字符串是否為回文。只考慮字母數字字符,忽略大小寫。非字母數字字符跳過。 例:A man, a plan, a canal: Panama → tr