mirror of
https://github.com/prdlk/leetcode.git
synced 2026-11-02 21:22:43 +00:00
51 lines
1.0 KiB
Python
51 lines
1.0 KiB
Python
"""
|
|
78. Subsets
|
|
Difficulty: Medium
|
|
https://leetcode.com/problems/subsets/
|
|
|
|
──────────────────────────────────────────────────
|
|
|
|
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.
|
|
|
|
|
|
|
|
Example 1:
|
|
|
|
Input: nums = [1,2,3]
|
|
Output: [[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
|
|
|
|
Example 2:
|
|
|
|
Input: nums = [0]
|
|
Output: [[],[0]]
|
|
|
|
|
|
|
|
Constraints:
|
|
|
|
• 1 <= nums.length <= 10
|
|
|
|
• -10 <= nums[i] <= 10
|
|
|
|
• All the numbers of nums are unique.
|
|
"""
|
|
|
|
|
|
class Solution:
|
|
def subsets(self, nums: list[int]) -> list[list[int]]:
|
|
res = []
|
|
|
|
def backtrack(i, path):
|
|
res.append(path[:])
|
|
for num_idx in range(i, len(nums)):
|
|
path.append(nums[num_idx])
|
|
backtrack(num_idx + 1, path)
|
|
path.pop()
|
|
|
|
backtrack(0, [])
|
|
return res
|