Generation

generate functionSun, 15 Jan 2023

how to find the subsequences of an array

vector<vector<int>> findSubsequences(vector<int>& nums) { vector<vector<int>> res; vector<int> sub; subsequence(nums, res, sub, 0); return res; } void subsequence(vector<int>& nums, vector<vector<int>>& res, vector<int>& sub, int pos) { if(sub.size()>=2){ res.push_back(sub); } unordered_set<int> hash; for(int i=pos; i<nums.size(); i++) { if((sub.size() == 0 || nums[i] >= sub.back()) && hash.find(nums[i]) == hash.end()) { sub.push_back(nums[i]); subsequence(nums, res, sub, i+1); sub.pop_back(); hash.insert(nums[i]); } } }

Questions about programming?Chat with your personal AI assistant