Brainteaser
Math
·10 mins
Algorithm
Math
Combinatorics
Geometry
Brainteaser
Combinatorial counting (pairs, ways to split), building the k-th permutation digit by digit, geometry (nearest point, law of cosines, triangle inequality), problems that become formulas after sorting or an observation, plus carry arithmetic, base conversion and fast exponentiation
LeetCode 3828: Final Element After Subarray Deletions
·2 mins
LeetCode
Medium
Math
Brainteaser
Game-Theory
Array
LeetCode 3828 note: Alice can leave only the first or last element on her first move, guaranteeing max(first, last); Bob can likewise keep only an end, and one deletion changes at most one end, so the answer is max(first, last)
LeetCode 2745: Construct the Longest New String
·2 mins
LeetCode
Medium
Dynamic-Programming
Math
Greedy
Brainteaser
LeetCode 2745 note: AA and BB must alternate, using min(x, y) pairs plus one extra of the more common kind, and every AB fits in
LeetCode 1025: Divisor Game
·2 mins
LeetCode
Easy
Math
Dynamic-Programming
Brainteaser
Game-Theory
LeetCode 1025 note: dp[i] holds when some divisor x of i makes dp[i - x] a loss; observing the pattern, the answer is simply whether n is even
LeetCode 292: Nim Game
·1 min
LeetCode
Easy
Math
Brainteaser
Minimax-Algorithm
Game-Theory
LeetCode 292 note: whoever faces a multiple of 4 stones loses, so the first player wins when n % 4 != 0