Skip to main content
Back to problems
#78
Medium Algorithms

Subsets

Array Backtracking Bit Manipulation
82.1% acceptance
Jan 12, 2026
19083
340
Given an integer array nums of unique elements, return all possible subsets (the power set). The solution set must not contain duplicate subsets. Return the solution in any order.

Solution

Rust
Time O(2^n)
Space O(n)
LeetCode
solution.rs
impl Solution {
  pub fn subsets(nums: Vec<i32>) -> Vec<Vec<i32>> {
    let mut result = Vec::new();
    let mut current = Vec::new();
    Self::backtrack(&nums, 0, &mut current, &mut result);
    result
  }
  
  fn backtrack(nums: &[i32], start: usize, current: &mut Vec<i32>, result: &mut Vec<Vec<i32>>) {
    result.push(current.clone());
    
    for i in start..nums.len() {
      current.push(nums[i]);
      Self::backtrack(nums, i + 1, current, result);
      current.pop();
    }
  }
}