diff options
| -rw-r--r-- | works/solutions/cpp/.gitignore | 4 | ||||
| -rw-r--r-- | works/solutions/cpp/77.cpp | 45 | 
2 files changed, 48 insertions, 1 deletions
| diff --git a/works/solutions/cpp/.gitignore b/works/solutions/cpp/.gitignore index adb36c8..d1d85a8 100644 --- a/works/solutions/cpp/.gitignore +++ b/works/solutions/cpp/.gitignore @@ -1 +1,3 @@ -*.exe
\ No newline at end of file +*.exe
 +*.pdb
 +*.ilk
\ No newline at end of file diff --git a/works/solutions/cpp/77.cpp b/works/solutions/cpp/77.cpp new file mode 100644 index 0000000..ec09198 --- /dev/null +++ b/works/solutions/cpp/77.cpp @@ -0,0 +1,45 @@ +#include <vector>
 +
 +using std::vector;
 +
 +void combine1(int start, int end, int rest_select_count, vector<int> &head, vector<vector<int>> &result)
 +{
 +    if (rest_select_count == 0)
 +    {
 +        for (int i = start; i < end; i++)
 +        {
 +            head.push_back(i);
 +            result.push_back(head);
 +            head.pop_back();
 +        }
 +        return;
 +    }
 +
 +    for (int i = start; i < end - rest_select_count; i++)
 +    {
 +        head.push_back(i);
 +        combine1(i + 1, end, rest_select_count - 1, head, result);
 +        head.pop_back();
 +    }
 +}
 +
 +class Solution
 +{
 +public:
 +    vector<vector<int>> combine(int n, int k)
 +    {
 +        vector<vector<int>> result;
 +
 +        vector<int> head;
 +        combine1(1, 1 + n, k - 1, head, result);
 +
 +        return result;
 +    }
 +};
 +
 +int main()
 +{
 +    Solution s;
 +    auto result = s.combine(20, 16);
 +    return 0;
 +}
\ No newline at end of file | 
