Non-decreasing Subsequences

ㅋㅋ·2023년 1월 20일
0

알고리즘-leetcode

목록 보기
94/135

정수형 벡터를 하나 받는데 이 벡터의 데이터들을 사용하여

무조건 이전 인덱스의 데이터보다 크거나 같은 수로 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;
    }
};

0개의 댓글