Hot100: N-Queens Incremental Build Tutorial

51. N-Queens is best learned by watching the code grow one small step at a time. This tutorial keeps only the teaching path: tiny example, first DFS skeleton, first correct version, column-only optimization, then full diagonal-state optimization. Problem The n-queens puzzle asks us to place n queens on an n x n chessboard so that no two queens attack each other. Given an integer n, return all distinct solutions. Each solution is represented as a list of strings where: ...

April 19, 2026 · 8 min · map[name:Jeanphilo]

Hot100: Palindrome Partitioning (Backtracking / Palindrome Table ACERS Guide)

Subtitle / Summary 131. Palindrome Partitioning is not hard because of recursion alone. The real challenge is separating two concerns clearly: where the next cut starts, and whether the current substring is a valid palindrome. Reading time: 15-18 min Tags: Hot100, backtracking, string, palindrome, DP SEO keywords: Palindrome Partitioning, backtracking, palindrome DP, string partition, LeetCode 131 Meta description: Learn LeetCode 131 by building the solution from scratch, using suffix-based DFS plus a precomputed palindrome table. A — Algorithm Problem Restatement Given a string s, partition it so that every substring in the partition is a palindrome. Return all possible palindrome partitionings of s. ...

April 19, 2026 · 15 min · map[name:Jeanphilo]

LeetCode 216: Combination Sum III (Backtracking / Fixed-Length Search ACERS Guide)

Subtitle / Summary 216. Combination Sum III is where backtracking adds one more important constraint: not only must the sum match, but the combination length must be exactly k. That turns the problem into a clean fixed-length combination search over the bounded range 1..9. Reading time: 12-15 min Tags: backtracking, fixed length, pruning, combination search SEO keywords: Combination Sum III, fixed-length backtracking, k numbers, pruning, LeetCode 216 Meta description: Build the stable solution for LeetCode 216 from scratch by understanding exact-length backtracking, sorted pruning, and the bounded candidate set 1..9. A — Algorithm Problem Restatement Find all valid combinations of k numbers that add up to n, subject to these rules: ...

April 17, 2026 · 12 min · map[name:Jeanphilo]

LeetCode 40: Combination Sum II (Backtracking / Same-Layer Dedup ACERS Guide)

Subtitle / Summary If 39. Combination Sum teaches “reuse is allowed”, then 40. Combination Sum II teaches the next real upgrade: duplicate values exist, each number may be used at most once, and de-duplication must happen at the correct tree level. Reading time: 14-16 min Tags: backtracking, dedup, pruning, combination search SEO keywords: Combination Sum II, backtracking, same-layer dedup, pruning, LeetCode 40 Meta description: Build the stable solution for LeetCode 40 from scratch by understanding sorted pruning, use-once recursion, and the same-layer duplicate skip rule. A — Algorithm Problem Restatement Given a collection of candidate numbers candidates and a target integer target, return all unique combinations where the chosen numbers sum to target. ...

April 17, 2026 · 14 min · map[name:Jeanphilo]

Hot100: Combination Sum (Backtracking / Pruning ACERS Guide)

Subtitle / Summary Combination Sum is the first Hot100 backtracking problem that really mixes three ideas at once: combination-style search, a running target, and safe pruning after sorting. The point is not to jump straight to the template, but to build it step by step from the problem itself. Reading time: 14-16 min Tags: Hot100, backtracking, combination sum, pruning SEO keywords: Combination Sum, backtracking, pruning, remain, DFS Meta description: Learn LeetCode 39 by building the solution from scratch, using path, remain, repeated candidate reuse, and sorted pruning. A — Algorithm Problem Restatement Given an array of distinct integers candidates and a target integer target, return a list of all unique combinations of candidates where the chosen numbers sum to target. ...

April 8, 2026 · 13 min · map[name:Jeanphilo]

Hot100: Permutations (used[] Backtracking ACERS Guide)

Subtitle / Summary If Subsets teaches the skeleton of combination-style backtracking, Permutations teaches the core of state-based backtracking: at each position, choose one unused element, continue until the path length reaches n, and only then collect the answer. Reading time: 10-12 min Tags: Hot100, backtracking, permutations, DFS SEO keywords: Permutations, backtracking, used array, DFS, LeetCode 46 Meta description: Learn the stable permutation backtracking template for LeetCode 46, with state recovery, engineering analogies, and runnable multi-language solutions. A — Algorithm Problem Restatement Given an array nums of distinct integers, return all possible permutations. The answer may be returned in any order. ...

April 3, 2026 · 10 min · map[name:Jeanphilo]

LeetCode 133: Clone Graph Hash Map + DFS/BFS ACERS Guide

Subtitle / Summary Clone Graph is not a traversal-only problem. The real challenge is preserving graph structure while avoiding duplicate copies in the presence of cycles. The stable solution is a traversal plus a hash map from original nodes to cloned nodes. Reading time: 12-15 min Tags: graph, dfs, bfs, hash map, deep copy SEO keywords: Clone Graph, graph deep copy, DFS, BFS, LeetCode 133 Meta description: Deep-copy an undirected graph with a node-to-node map, explaining why memoization is mandatory and how DFS/BFS versions work, with runnable code in six languages. Target Readers LeetCode learners practicing graph traversal and deep-copy patterns Engineers who duplicate object graphs, workflow graphs, or topology graphs Developers who want one reusable template for “clone with cycles” Background / Motivation Many “copy” problems are actually identity-preservation problems. ...

March 19, 2026 · 11 min · map[name:Jeanphilo]

LeetCode 2089: Find Target Indices After Sorting Array ACERS Guide

Subtitle / Summary This problem is a useful bridge between sorting and binary search. After sorting the array, all copies of target become one contiguous block, and the answer is simply every index inside that block. Reading time: 10-12 min Tags: sorting, binary search, range location SEO keywords: Find Target Indices After Sorting Array, LeetCode 2089, lower bound, upper bound Meta description: Sort the array, use lower and upper bounds to find the target block, and return every matching index, with tradeoffs, engineering scenarios, and runnable implementations in six languages. Target Readers Learners connecting sorting with lower/upper bound search Engineers who need all positions of one value after offline sorting Interview candidates reviewing how contiguous blocks form in sorted data Background / Motivation The input array is not sorted, so we cannot apply binary search immediately. But once we sort it, every copy of the same value becomes one continuous segment. ...

March 18, 2026 · 8 min · map[name:Jeanphilo]

LeetCode 2529: Maximum Count of Positive Integer and Negative Integer ACERS Guide

Subtitle / Summary This problem is a compact exercise in boundary counting. Because the array is already sorted, you do not count negatives and positives one by one; you find where zero starts and where zero ends, then compute both counts from those boundaries. Reading time: 10-12 min Tags: binary search, counting, sorted array, boundaries SEO keywords: Maximum Count of Positive Integer and Negative Integer, LeetCode 2529, boundary counting Meta description: Use lower-bound and upper-bound binary search around zero to count negatives and positives in a sorted array, with correctness reasoning, engineering scenarios, and runnable implementations in six languages. Target Readers Learners practicing boundary search beyond exact-match lookup Engineers who count segments in sorted data Interview candidates learning how lower and upper bounds produce counts Background / Motivation The input is already sorted. That changes the problem completely. ...

March 18, 2026 · 9 min · map[name:Jeanphilo]

LeetCode 34: Find First and Last Position of Element in Sorted Array

Problem Requirement Start with the official input nums = [5,7,7,8,8,10] and target = 8. The answer must be the complete range [3,4]; returning only index 3 or 4 does not identify both the target’s first and last occurrences. Given an integer array nums sorted in non-decreasing order and an integer target: If target exists, return the indices of its first and last occurrences as [first, last]. If target does not exist, return [-1, -1]. The problem ultimately requires an algorithm with O(log n) runtime. LeetCode uses this method contract: ...

March 18, 2026 · 15 min · map[name:Jeanphilo]