491. Increasing Subsequences

来源:互联网 发布:windows图片查看器修复 编辑:程序博客网 时间:2024/06/05 21:50

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;    }};
0 0
原创粉丝点击