mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-08-02 20:28:28 +08:00
50 lines
891 B
Markdown
50 lines
891 B
Markdown
# 题目地址
|
||
|
||
# 第78题. 子集
|
||
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
|
||
|
||
说明:解集不能包含重复的子集。
|
||
|
||
示例:
|
||
|
||
输入: nums = [1,2,3]
|
||
输出:
|
||
[
|
||
[3],
|
||
[1],
|
||
[2],
|
||
[1,2,3],
|
||
[1,3],
|
||
[2,3],
|
||
[1,2],
|
||
[]
|
||
]
|
||
|
||
|
||
# 思路
|
||
|
||
|
||
# C++代码
|
||
|
||
```
|
||
|
||
class Solution {
|
||
private:
|
||
void backtracking(vector<int>& nums, vector<vector<int>>& result, vector<int>& vec, int startIndex) {
|
||
result.push_back(vec);
|
||
for (int i = startIndex; i < nums.size(); i++) {
|
||
vec.push_back(nums[i]);
|
||
backtracking(nums, result, vec, i + 1);
|
||
vec.pop_back();
|
||
}
|
||
}
|
||
public:
|
||
vector<vector<int>> subsets(vector<int>& nums) {
|
||
vector<vector<int>> result;
|
||
vector<int> vec;
|
||
backtracking(nums, result, vec, 0);
|
||
return result;
|
||
}
|
||
};
|
||
```
|