정수형 벡터를 하나 받는데 이 벡터의 데이터들을 사용하여
무조건 이전 인덱스의 데이터보다 크거나 같은 수로 Subsequence들을 만들어 반환하는 문제
class Solution {
public:
vector<vector<int>> findSubsequences(vector<int>& nums) {
hashTable.clear();
vector<int> temp{};
int length = nums.size();
for (int i = 0; i < length; i++)
{
SearchDFS(i, nums, temp);
}
return {hashTable.begin(), hashTable.end()};
}
private:
set<vector<int>> hashTable{};
void SearchDFS(int &index, vector<int>& nums, vector<int> &tempResult)
{
int length = nums.size();
if (index == length)
{
return;
}
tempResult.push_back(nums[index]);
if (2 <= tempResult.size())
{
hashTable.insert(tempResult);
}
for (int i = index + 1; i < length; i++)
{
if (nums[index] <= nums[i])
{
SearchDFS(i, nums, tempResult);
}
}
tempResult.pop_back();
return;
}
};