class Solution {
public:
int n;
vector<vector<int> >ans;
vector<int>tmp;
void dfs(vector<int>&a,int pos){
map<int,int>mp;
for(int i=pos;i<n;++i){
if(!mp[a[i]]&&(!tmp.size()||a[i]>=tmp[tmp.size()-1])){
mp[a[i]]=1;
tmp.push_back(a[i]);
if(tmp.size()>=2) ans.push_back(tmp);
dfs(a,i+1);
tmp.pop_back();
}
}
}
vector<vector<int>> findSubsequences(vector<int>& a) {
n=a.size();
dfs(a,0);
return ans;
}
};
leetcode 491. 递增子序列 (找出所有递增子序列 输出 并不能重复 dfs回溯)
最新推荐文章于 2022-01-19 21:29:11 发布