leetcode遍历子集
子集
给你一个整数数组,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。
解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。
示例 1:
输入:nums = [1,2,3]
输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
示例 2:
输入:nums = [0]
输出:[[],[0]]
提示:
1 <= nums.length <= 10
-10 <= nums[i] <= 10
nums 中的所有元素 互不相同
leetcode中的代码
class Solution {
public:
void backtrack(vector<vector<int>>& res,vector<int>& path,vector<int>& nums,int index){
if(index>nums.size()) return ;
res.push_back(path);
for(int i=index;i<nums.size();i++){
path.push_back(nums[i]);
backtrack(res,path,nums,i+1);
path.pop_back();
}
}
vector<vector<int>> subsets(vector<int>& nums) {
sort(nums.begin(),nums.end());
vector<vector<int>> res;
vector<int> path;
backtrack(res,path,nums,0);
return res;
}
};
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
const int maxn=1e5+100;
int vis[maxn],a[maxn];
int ans[maxn],cnt=0,n;
void dfs(int x){
for(int i=1;i<=cnt;i++){
cout<<ans[i]<<" ";
}
cout<<endl;
for(int i=x;i<=n;i++){
cnt++;
ans[cnt]=a[i];
dfs(i+1);
cnt--;
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
a[i]=i;
}
dfs(1);
}
子集 II
给你一个整数数组,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。
解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。
示例 1:
输入:nums = [1,2,2]
输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]
示例 2:
输入:nums = [0]
输出:[[],[0]]
提示:
1 <= nums.length <= 10
-10 <= nums[i] <= 10
class Solution {
public:
void backtrack(vector<vector<int>>& res,vector<int>& path,vector<int>& nums,int index){
if(index>nums.size()) return ;
res.push_back(path);
for(int i=index;i<nums.size();i++){
if(i!=index&&nums[i]==nums[i-1]) continue;
path.push_back(nums[i]);
backtrack(res,path,nums,i+1);
path.pop_back();
}
}
vector<vector<int>> subsetsWithDup(vector<int>& nums) {
sort(nums.begin(),nums.end());
vector<vector<int>> res;
vector<int> path;
backtrack(res,path,nums,0);
return res;
}
};
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2020-11-23 Gerald and Giant Chess(计数dp+组合数学)
2020-11-23 矩阵快速幂
2020-11-23 矩阵快速幂(模板)
2020-11-23 两个选与不选的dp