Combinatorics
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 2963: Count the Number of Good Partitions
·2 mins
LeetCode
Hard
Math
Combinatorics
Hash-Table
Array
LeetCode 2963 note: all occurrences of a value must share a part, so last occurrences cut the array into b indivisible blocks; each boundary may be cut or not, giving 2^(b-1)
LeetCode 2912: Number of Ways to Reach Destination in the Grid
·3 mins
LeetCode
Hard
Dynamic-Programming
State-Machine
Math
Combinatorics
LeetCode 2912 note: many cells, but only four classes relative to the destination (itself, same row, same column, neither); each class’s total moves together in O(k)
LeetCode 60: Permutation Sequence
·2 mins
LeetCode
Hard
Math
Combinatorics
Recursion
LeetCode 60 note: make k 0-indexed; once the first digit is fixed there are (n-1)! arrangements, so k // (n-1)! picks the first digit among those remaining, then repeat for the next position
LeetCode 22: Generate Parentheses
·2 mins
LeetCode
Daily
Medium
String
Backtracking
Recursion
Combinatorics
Parentheses
Generating all valid parentheses combinations using backtracking approach
LeetCode 3518: Smallest Palindromic Rearrangement II
·3 mins
LeetCode
Hard
Math
Combinatorics
Counting
Hash-Table
String
LeetCode 3518 note: a palindrome is determined by its left half, so this is the k-th permutation of a multiset; try characters position by position and use permutation counts, updated in O(1), to find k’s branch