Generating All Permutations of an Array
Given an array nums containing distinct integers, return all possible permutations. You may return the answer in any order.
Example 1:
<strong>Input:</strong> nums = [1,2,3]
<strong>Output:</strong> [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
Example 2:
<strong>Input:</strong> nums = [0,1]
<strong&g ...
Posted on Wed, 29 Jul 2026 16:21:02 +0000 by onicsoft
Generating Combinations with Backtracking
The task is to generate all possible combinations of r distinct numbers from the set {1, 2, ..., n}. A combination is an unordered selection, meaning {1, 2, 3} is the same as {3, 2, 1}. We need to print each combination on a new line, with numbers sorted in ascending order and each number occupying exactly three characters of space. The combina ...
Posted on Thu, 16 Jul 2026 16:27:06 +0000 by NuMan
Mastering Backtracking: Generating Increasing Subsequences and Permutations
This article delves into advanced backtracking techniques for solving common algorithmic problems, specifically focusing on generating increasing subsequences and permutations, including handling duplicates.
Generating Increasing Subsequences (Problem 491)
Given an integer array, the task is to find all increasing subsequences with a length of ...
Posted on Tue, 14 Jul 2026 17:10:59 +0000 by Dominator69
Backtracking Algorithm: Fundamentals, Combinations, and Pruning
Backtracking Algorithm
Understanding Backtracking
Backtracking solves problems by exploring all possible solutions in a systematic way, often represented as a tree structure. The algorithm recursively searches through subsets, where the size of the original set determines the tree's width, and the recursion depth determines its height. Since re ...
Posted on Mon, 13 Jul 2026 17:21:59 +0000 by ashbai
Understanding Recursion Termination Conditions for Binary Tree Path Problems
LeetCode 257: Binary Tree All Paths
Termination Condition Considerations
The statement if (root == nullptr) return; serves multiple critical purposes in recursive tree algorithms:
Primary Function Guard
When placed in the main function provided by LeetCode, this check handles the empty tree case. If an empty tree is passed to the main function, ...
Posted on Sun, 12 Jul 2026 16:49:45 +0000 by knickerlas
Mastering Graph Search: DFS and BFS Strategies in Competitive Programming
Understanding Search Paradigms
When approaching algorithmic challenges involving traversal, two primary methods dominate: Depth-First Search (DFS) and Breadth-First Search (BFS). While both traverse nodes in a graph or tree, their utility differs based on the problem constraints. BFS is fundamentally tied to the concept of shortest paths in unw ...
Posted on Thu, 09 Jul 2026 17:24:30 +0000 by studot
Binary Tree Algorithms: Bottom-Left Value, Path Sum Variants, and Tree Construction from Traversals
Finding the Bottom-Left Node Value
Given the root of a binary tree, return the value of the leftmost node at the deepest level.
Breadth-First Search (Iterative)
A level-order traversal naturally visits nodes layer by layer. The first node encountered in the final level is the answer.
#include <queue>
int findBottomLeftValue(TreeNode* roo ...
Posted on Sat, 13 Jun 2026 17:35:17 +0000 by eideticmnemonic
Algorithmic Problem Solving Techniques and Implementations
Equalizing Card Piles (Greedy Approach)
To distribute cards equally among $N$ piles, calculate the average number of cards per pile and subtract this value from each pile's count. This transforms the problem into finding the minimum number of moves to zero out the differences. Iterating from left to right, if a pile has a non-zero discrpeancy, ...
Posted on Wed, 10 Jun 2026 16:32:25 +0000 by bdichiara
Generating Valid IP Addresses and Subsets from Given Inputs
Valid IP Address Generation
Given a string containing only digits, geenrate all possbile valid IP address combinations. A valid IP address consists of four integers between 0-255 separated by dots, with no leading zeros.
class IPGenerator {
vector<string> validIPs;
bool isValidSegment(const string& s, int start, int end) ...
Posted on Tue, 09 Jun 2026 16:46:05 +0000 by Coronet
Backtracking Algorithms for Combination Sum and Palindrome Partitioning
Combination Sum
The objective is to find all unique combinations from a list of candidate numbers that sum up to a given target. Each number may be used multiple times.
The solution uses recursive backtracking with the following approach:
Parameters include the candidate array, target value, current combination, and results collection
Terminat ...
Posted on Fri, 05 Jun 2026 17:01:53 +0000 by abushahin