首页 > 学院 > 开发设计 > 正文

491. Increasing Subsequences

2019-11-06 06:51:36
字体:
来源:转载
供稿:网友

DFS算法+set存储独特的解。

class Solution {public: void func(int startIndex,vector<int>& temp,set<vector<int>>& result,vector<int>& nums) { if(temp.size()>=2) result.insert(temp); set<int> unique; for(int j=startIndex+1;j<nums.size();j++) { if(nums[j]>=nums[startIndex]&&unique.count(nums[j])==0) { unique.insert(nums[j]); temp.push_back(nums[j]); func(j,temp,result,nums); temp.pop_back(); } } return; } vector<vector<int>> findSubsequences(vector<int>& nums) { set<vector<int>> result; vector<vector<int>> resultFinal; vector<int> temp; if(nums.size()<=1) return resultFinal; for(int startIndex=0;startIndex<=nums.size()-2;startIndex++) { temp.push_back(nums[startIndex]); func(startIndex,temp,result,nums); temp.pop_back(); } for(set<vector<int>>::iterator it=result.begin();it!=result.end();it++) resultFinal.push_back(*it); return resultFinal; }};
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表