Skip to content

the-mrinal/Subsets-Subarrays-Subsequences

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 

Repository files navigation

Subsets, Subarrays & Subsequences

Language Topic License

A focused collection of subset, subarray, and subsequence problems implemented in C++ using recursion and backtracking. Each problem demonstrates different approaches to generating and filtering combinations from arrays.


Problems

# Problem Approach Data Structure
1 Subset Return (2D Dynamic Array) Recursion int** (heap-allocated)
2 Subset Return (2D Vector) Recursion vector<vector<int>>
3 Subset Print (1D Array) Backtracking int[] with sentinel -1
4 Subset Sum = K (Return) Constrained Recursion int[][] (static)
5 Subset Sum = K (Print) Constrained Backtracking int[] with sentinel -1

Example I/O

Subset Return

Input:
  3
  1 2 3

Output:
  3
  2
  2 3
  1
  1 3
  1 2
  1 2 3

Subset Sum = K

Input:
  4
  2 1 3 2
  K = 4

Output:
  2 2
  1 3

Concepts Covered

  • Recursive subset generation — include/exclude each element to explore 2^n combinations
  • Backtracking — build solutions incrementally and prune invalid paths
  • Dynamic vs static allocation — compare new int*[] vs vector<vector<int>>
  • Constrained search — filter subsets by a target sum

Complexity

Metric Value
Time (generate all subsets) O(n * 2^n)
Space (store all subsets) O(n * 2^n)
Time (print subsets) O(2^n)

How to Run

g++ -o subsets subsets.cpp
./subsets

Topics

recursion backtracking subsets subarrays subsequences dynamic-programming cpp competitive-programming algorithms data-structures

About

C++ implementations of subset, subarray & subsequence problems using recursion and backtracking

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages